PHP服务器和mysql表单

标签 php mysql forms

我无法让它工作。我遇到了障碍。请有人看一下,如果您发现我遗漏的内容,请告诉我。已验证与 mysql 的连接正常工作。当我提交表单时,它会显示“记录插入成功”。但数据库中没有创建实际记录。我尝试过不同的方法但没有成功

<?php    
if ($_SERVER["REQUEST_METHOD"] == "POST"){

$usrID = $_POST["usrID"];
$Fname = $_POST["Fname"];
$Lname = $_POST["Lname"];
$short_title = $_POST["short_title"];
$email = $_POST["email"];
$phone = $_POST["phone"];

$link = mysqli_connect("localhost", "username", "topsecret", "DBname");

if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

$sql = "INSERT INTO tableName (usrID, Fname, Lname, short_title, email, phone) VALUES (?, ?, ?, ?, ?, ?)";

if($stmt = mysqli_prepare($link, $sql)){
    mysqli_stmt_bind_param($stmt, "sss", $usrID, $Fname, $Lname, $short_title, $email, $phone);

    mysqli_stmt_execute($stmt);

    echo "Record inserted successfully.";
} else{
    echo "ERROR: Could not prepare query: $sql. " . mysqli_error($link);
}
mysqli_stmt_close($stmt);
mysqli_close($link);
}
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Need Help!</title>
</head>

<body>

    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
  <table align="center" width="650" border="1" cellspacing="0" cellpadding="3">
    <tbody>
        <tr>
        <td colspan="4" align="center">
          <span>Input New User Information: </span></td>
        </tr>
      <tr>
        <td colspan="4" align="center">
          <label for="usrID">User ID:</label>
          <input type="text" name="usrID" id="usrID" required></td>
        </tr>
      <tr>
          <td colspan="2"><label for="Fname">First Name: </label><input type="text" name="Fname" id="Fname" required></td>
        <td colspan="2"><label for="Lname">Last Name: </label><input type="text" name="Lname" id="Lname" required></td>
        </tr>
      <tr>
          <td colspan="2"><label for="short_title">Abreviated Title(s): </label><input type="text" name="short_title" id="short_title" placeholder="Generally goes after Last Name and a comma"></td>
        <td colspan="2"><label for="email">Agent Email: </label><input type="email" name="email" id="email"></td>        
      </tr>
      <tr>
          <td colspan="4"><label for="phone">Agent Phone: </label><input type="tel" name="phone" id="phone" placeholder="XXX.XXX.XXXX"></td>
      </tr>
      <tr>
        <td colspan="2"><input type="reset"></td>
        <td colspan="2"><input type="submit" name="submit" value="Submit"></td>
      </tr>
    </tbody>
  </table>
</form>
</body>
</html>

最佳答案

看起来这个声明返回 true:

if($stmt = mysqli_prepare($link, $sql)){

无论执行的语句返回什么,如果上述语句为 true,它都会打印您的行:

mysqli_stmt_execute($stmt);

echo "Record inserted successfully.";

$stmt 中的语句是什么?检查sql并验证其是否正确。

关于PHP服务器和mysql表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50456332/

相关文章:

PHP curl,保留 session

javascript - PHP:将变量传递给javascript

php - Cookies的过期时间

php - 在codeigniter中将密码保存到数据库

mysql - 导入文本包含逗号 (,) 的 SQL 文件

PHP Mysqli multi_query 和触发器的分隔符

Javascript 表单验证仅适用于 firefox

mysql - 为公众提供一种在数据库上运行 SELECT 查询的方法有多危险?

javascript - 如何在表单提交时触发div

javascript - jQuery 验证普通按钮上的表单(不提交)