在mysql for php中执行多个sql删除查询

时间:2010-07-02 10:29:16

标签: php mysql

出于某种原因,我想使用php mysql查询功能删除我表中的一些记录。这是我写的

$sql = "delete from progress where first_date='2010-01-01' and last_date='2010-01-31';
delete from progress where first_date='2010-02-01' and last_date='2010-02-28';
delete from progress where first_date='2010-03-01' and last_date='2010-02-31';
delete from progress where first_date='2010-04-01' and last_date='2010-02-30';
delete from progress where first_date='2010-05-01' and last_date='2010-02-31';";

if(!mysql_query($sql)) echo "Error deleting records";

这就是我得到的,“删除记录时出错”。但是当使用mysql_error()进行它时,它毕竟没用。任何人都知道如何处理这个?感谢之前

4 个答案:

答案 0 :(得分:6)

出于安全原因,

mysql_query()无法执行多个语句。

使用mysqli_multi_query()或多次调用mysql_query()。

答案 1 :(得分:3)

使用mysql_query()时,一次不能发送多个SQL查询。这就是为什么它失败并返回错误。

答案 2 :(得分:0)

您可以为每个查询创建不同的变量,然后为创建的每个变量调用mysql_query。 当我想执行两个查询来一次选择和更新时,我这样做了。

答案 3 :(得分:0)

为什么不将所有查询合并为一个?

$ sql =" DELETE FROM progress WHERE(first_date =' 2010-01-01' AND last_date =' 2010-01-31')OR(first_date =& #39; 2010-02-01'和last_date =' 2010-02-28')或(first_date =' 2010-03-01' AND last_date =' 2010-02-31')或(first_date =' 2010-04-01' AND last_date =' 2010-02-30')或(first_date =' 2010 -05-01' AND last_date =' 2010-02-31')";