Я не могу заставить это работать. Я попал в преграду. Пожалуйста, посмотрите на него и дайте мне знать, если вы заметите что-то, что мне не хватает. Подключение к 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>






Похоже, это заявление вернет истину:
if ($stmt = mysqli_prepare($link, $sql)){
Независимо от того, что возвращает выполненный оператор, если приведенный выше вывод верен, он печатает ваши строки:
mysqli_stmt_execute($stmt);
echo "Record inserted successfully.";
Что такое инструкция в $ stmt? Проверьте этот sql и убедитесь, что он правильный.
Количество переменных и длина строковых типов должны соответствовать параметрам в инструкции в вашем параметре привязки.