Согласно некоторым старым учебникам, я создал формуляр, который хранит некоторую информацию в базе данных mysql с помощью mysql_query(). Но теперь я прочитал несколько сообщений, которые говорят, что больше не следует использовать mysql_query(), поэтому я попытался «перевести» мой старый код. Но после этого он не работает все больше и никаких новых записей не хранится в моей БД. Не могли бы вы помочь?Обновление php mysql_query() к подготовленному оператору
<?php
require '../db/connect.php';
if ($mysqli->connect_error) {
echo "Fehler bei der Verbindung: " . mysqli_connect_error();
exit();
}
$flightDate = $_POST['flightDate'];
$planeID = $_POST['planeID'];
$planeType = $_POST['planeType'];
$pilot = $_POST['pilot'];
$passengers = $_POST['passengers'];
/*
$sql = "INSERT INTO `flights`
(`flightDate`, `planeID`,`planeType`, `pilot`, `passengers`)
VALUES(
'" .$flightDate. "',
'" .$planeID. "',
'" .$planeType. "',
'" .$pilot. "',
'" .$passengers. "'
)";
mysql_query($sql) or die(mysql_error());
*/
// prepared statement
if($stmt = $mysqli->prepare("INSERT INTO flights
(flightDate, planeID,planeType, pilot, passengers)
VALUES (?, ?, ?, ?, ?)")) {
$stmt->bind_param("sssss", $flightDate, $planeID, $planeType, $pilot, $passengers);
$stmt->execute();
echo "Anzahl der veränderten Datensätze : " . $stmt->affected_rows;
$stmt->close();
}
$mysqli->close();
Похоже, что что-то не так с моими переменными. Если я называю файл PHP непосредственно в браузере я получаю много сообщений об ошибках:
Notice: Undefined index: flightDate in C:\xampp\htdocs\phptomysql\try_2\ajax\addFlight.php on line 9
Notice: Undefined index: planeID in C:\xampp\htdocs\phptomysql\try_2\ajax\addFlight.php on line 10
Notice: Undefined index: planeType in C:\xampp\htdocs\phptomysql\try_2\ajax\addFlight.php on line 11
Notice: Undefined index: pilot in C:\xampp\htdocs\phptomysql\try_2\ajax\addFlight.php on line 12
Notice: Undefined index: passengers in C:\xampp\htdocs\phptomysql\try_2\ajax\addFlight.php on line 13
Anzahl der veränderten Datensätze : -1
Я использую следующую функцию JQuery, чтобы передать значения из моей формы в PHP:
//add flight to db
$('#flightSubmit').on('click', function(){
var flightDate = ($.datepicker.formatDate("yy-mm-dd", $('#flightDateInput').datepicker("getDate")));
var planeID = $('input#planeIDInput').val();
var planeType = $('input#planeTypeInput').val();
var pilot = $('input#pilotInput').val();
var passengers = $('input#passengersInput').val();
$.post('ajax/addFlight.php', {flightDate: flightDate, planeID: planeID, planeType: planeType, pilot: pilot, passengers: passengers}, function(data){
});
});
'$ flightDate =" "$ _POST ['flightDate'];' удалите цитаты там. – Prix
удалил его. на панели панели консоли chrome dev можно увидеть «отмененный» статус «для моего php-файла». – juleee
Вот почему я перешел из mysqli в PDO. Это немного отличается, но гораздо проще. – Herbert