这个问题在这里已经有答案了:
mysqli:它能在一个语句中准备多个查询吗(2个答案)
9个月前关门了。
我目前正在做一个项目,在一定的条件下,表a的内容将被总结并插入到表B中,然后一个新行将被插入到表a中。然而,我创建的语句似乎不能用php编写,尽管实际的查询在sql中运行良好。有人能告诉我怎么做才能解决这个问题吗?
$insert = "INSERT INTO DATABASE.TableB(ColumnB2, ColumnB3, ColumnB4, ColumnB5)
SELECT DATE(MAX(ColumnA2)), MIN(ColumnA3), MAX(ColumnA3), AVG(ColumnA3)
FROM DATABASE.TableA
;
DELETE
FROM DATABASE.TableA
;
ALTER TABLE DATABASE.TableA AUTO_INCREMENT = 1
;
INSERT INTO DATABASE.Current_Level(ColumnA2, ColumnA3)
VALUES(CURRENT_TIMESTAMP, ?)
;";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $insert))
{
echo "Error";
}
else
{
mysqli_stmt_bind_param($stmt, "d", $ColumnA2);
mysqli_stmt_execute($stmt);
}
1条答案
按热度按时间ldxq2e6h1#
不能为多个sql语句创建准备好的语句。您需要为每个sql语句创建一个准备好的语句。每条sql语句用分号分隔
;
根据php文档:不支持将multiple语句与prepared语句一起使用。
https://www.php.net/manual/en/mysqli.quickstart.multiple-statement.php