多个查询 mysqli



我正在尝试使用 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()更好,更清洁,更安全的选择。

最新更新