Я случайный любитель PHP / MySQL, то есть каждые пару лет я получаю идею простого проекта CRUD и пытаюсь его выполнить. Последнее произошло в октябре 2018 года. Вчера я запустил еще один проект CRUD, надеясь переназначить старый код. Но мои команды INSERT не работают. Код буквально взят со старого живого сайта, который у меня был, который отлично работал.
Я провел целый день, гугляя, и там есть много старых вещей. Я сделал как обычно, включив PHP ошибок и выводя мои переменные (которые оказываются пустыми). Я знаю, что подключаюсь к своей базе данных, потому что я повторил сообщение об успехе. На самом деле я не ищу кого-нибудь, кто решит мою проблему, а скорее скажет мне, что все изменилось, и вам нужно проверить исходники X.
Вот урезанная версия моего кода. Изменился ли синтаксис PHP / MySQL CRUD с 2018 года?
// Connect to database
require_once "mysqli-connect.php";
$mysqli = dbConnect('dbname');
// Define variables and initialize with empty values
$fname = $lname = "";
// Process the form
if(isset($_POST['submit'])) {
// Set first name
$fname = trim($_POST['fname']);
// Set last name
$lname = trim($_POST['lname']);
// Prepare an insert statement
$query = "INSERT INTO test_table (fname, lname) VALUES (?, ?)";
if ($stmt = $mysqli->prepare($query)) {
// Bind variables to the prepared statement as parameters
$stmt->bind_param("ss", $param_fname, $param_lname);
// Set parameters
$param_fname = $fname;
$param_lname = $lname;
// Attempt to execute the prepared statement
if($stmt->execute()){
// Get last inserted id
$last_id = mysqli_insert_id($mysqli);
// Redirect to photo upload page
?>
<script type="text/javascript">
window.location = 'upload_image.php'; // This does NOT redirect like it should
</script>
<?php
exit;
} // End execute
} // End prepare
// Close statement
$stmt->close();
} // End process form
// Close connection
$mysqli->close();
?>
<form class="needs-validation" novalidate action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
<label for="fname">*First name</label>
<input type="text" class="form-control" name="fname" value="<?php echo $fname; ?>" maxlength="20" autofocus required>
<div class="invalid-feedback">
Valid first name is required.
</div>
<label for="lname">*Last name</label>
<input type="text" class="form-control" name="lname" value="<?php echo $lname; ?>" maxlength="20" required>
<div class="invalid-feedback">
Valid last name is required.
</div>
<input type="submit" class="btn btn-submit btn-block" value="Continue">
</form>