【发布时间】:2017-07-20 09:56:13
【问题描述】:
我正在开发一个连接到由 MySQL 管理的数据库的网站。这些是表 pagamenti 和 prenotazione 的结构:
帕加门蒂
Prenotazione
在我的 PHP 代码中,我想使用字段 IDPrenotazione 从两个表中删除一条记录。我可以使用两个不同的查询,如下面的代码
$query1 = "DELETE FROM pagamenti WHERE IDPrenotazione='$ID'";
$query2 = "DELETE FROM prenotazione WHERE IDPrenotazione='$ID'";
但如果我只使用一个查询会更好。我了解到在 SQL 语言中查询是由; 分隔的,所以我尝试了这段代码
$query = "DELETE FROM pagamenti WHERE IDPrenotazione='$ID';
DELETE FROM prenotazione WHERE IDPrenotazione='$ID'";
但它返回此错误
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELETE FROM prenotazione WHERE IDPrenotazione='2017-0006'' at line 1
这是完整的代码,带有执行
$query = "DELETE FROM pagamenti WHERE IDPrenotazione='$ID';
DELETE FROM prenotazione WHERE IDPrenotazione='$ID'";
if (mysqli_query($connessione, $query))
{
//code
}
else
{
echo mysqli_error($connessione);
}
如果我在 phpMyAdmin 上执行此代码,它会按我的意愿运行,没有错误,因此查询必须是正确的。
为什么它不能通过 PHP 工作?我怎样才能让它发挥作用?
【问题讨论】:
-
显示你的查询执行部分的 php 代码
-
它可以工作,但我个人会坚持这两个陈述。它更清晰,也更不容易出现其他错误。
-
你不能这样运行它:$query = "DELETE FROM pagamenti, prenotazione WHERE IDPrenotazione='$ID'"; ?
-
对于多个查询,请尝试multi_query
-
默认的
mysqli_queryphp函数不支持多查询,我想是出于安全原因。use mysqli_multi_query如果你真的需要这样做。