$qry1 = "DELETE FROM
si_topics
WHERE
topic_id = '". $_GET['topic'] ."'
DELETE FROM
si_posts
WHERE
topic_id = '". $_GET['topic'] ."'";
$mysqlqry1 = mysql_query($qry1);
if($mysqlqry1){
echo 'Topic deleted from database!';
} else {
echo 'Mysql query failed!';
}
这会给出消息Mysql query failed!
,为什么?
问候
答案 0 :(得分:2)
您的两个删除语句之间缺少分号。
此外,mysql_query
中不支持多个查询。
mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。
答案 1 :(得分:1)
您无法一次在mysql_query()功能中运行多个查询。
尝试使用mysqli::multi_query来运行多个查询。查询可以由;
答案 2 :(得分:1)
从手册中引用(我的重点)
mysql_query()发送唯一查询(不支持多个查询)
如果要在单个查询中执行多个SQL语句,则需要使用mysqli和multi-query,并且每个语句都需要用分号(;)
答案 3 :(得分:1)
由于:
改为使用mysqli.multi_query()
。
您还应该使用预准备语句或至少清理您的输入,因为您的代码有一个巨大的SQL注入漏洞(人们如何仍然像这样编写PHP?!?它们是什么?在这些“学校”教学?!唉!)
答案 4 :(得分:0)
PHP不允许一次运行2个查询。
您需要将查询拆分为2个变量并逐个运行。
http://php.net/manual/en/function.mysql-query.php
文档说明:
mysql_query()发送一个唯一的查询 (不支持多个查询) 到当前活动的数据库 与之关联的服务器 指定link_identifier。
标准的MySQL分隔符分号(;)在这里不起作用。
答案 5 :(得分:0)
如果您希望在多个表中指定多个删除条件,则可以对DELETE语句使用JOIN语法,但这可能效率低下 - 但这样,查询将适合mysql_query();
有人已经提到过mysqli和multi_query函数,竖起大拇指:)
另一方面,您的代码极易受到SQL注入攻击,在查询中直接使用它之前,请始终清理$ _POST和$ _GET输入!
答案 6 :(得分:-2)
在'echo'之后添加mysql_error($ link)Mysql查询失败!';'线
这将解释问题。