我正在尝试使用 mysqli 输入多个查询。然而,它并没有填充数据库。有什么想法吗?
$q2="UPDATE ticketinfo SET ticketstatus = $status where ticketno = $ticket;
insert into ticketinfo (remarks) values ('$remarks')";
$ex2= mysqli_multi_query($conn,$q2);
SQL 查询应按顺序执行。切勿将mysqli_multi_query()
与可变输入一起使用。您应该使用参数化的预准备语句。mysqli_multi_query()
几乎没有任何用例。
您的代码应如下所示:
// your mysqli connection
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli('localhost', 'username', 'password', 'dbname');
$mysqli->set_charset('utf8mb4'); // always set the charset
// First query
$stmt = $mysqli->prepare('UPDATE ticketinfo SET ticketstatus = ? WHERE ticketno = ?');
$stmt->bind_param('ss', $status, $ticket);
$stmt->execute();
// Second query
$stmt = $mysqli->prepare('INSERT INTO ticketinfo (remarks) VALUES (?)');
$stmt->bind_param('s', $remarks);
$stmt->execute();
我使用了两个预准备语句并分别绑定了输入。这比mysqli_multi_query()
更好,更清洁,更安全的选择。