当我在phpMyAdmin中直接尝试这一点时:
DELETE FROM navigation WHERE id='14';DELETE FROM subnavigation WHERE navi_id='14';它可以工作,但是当我做的PHP查询不工作时:
$db->query('DELETE FROM navigation WHERE id='.$id.';DELETE FROM subnavigation WHERE navi_id='.$id.';');它给了我这个错误,没有删除任何内容:
您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以便在第1行使用接近“从子导航中删除navi_id=14”的正确语法。
我想我错过了一些很小的东西!谢谢你的时间和帮助。
发布于 2011-04-24 21:58:07
把它变成一个查询。
//don't forget to protect yourself from SQL-injection attacks!
$id = mysql_real_escape_string($id);
$delete_query = " DELETE n, sn from navigation n
LEFT JOIN subnavigation sn ON (n.id = sn.id)
WHERE n.id = '$id' ");
$db->query($delete_query);发布于 2011-04-24 21:56:12
mysql_query()向与指定link_identifier相关联的服务器上的当前活动数据库发送唯一查询(多个查询不支持)。
http://php.net/manual/en/function.mysql-query.php
PhpMyAdmin基于分隔符爆炸字符串,并以多个查询的形式执行。
如果你想离开这本书(不推荐)
您只需将标志65536作为mysql_connect的5参数(client_flags)传递。此值在/usr/include/mysql/mysql_com.h中定义。
#define CLIENT_MULTI_STATEMENTS (1UL << 16) /* Enable/disable multi-stmt support */更新
在第一个表上创建一个触发器,所以删除它也会从第二个表中删除。
发布于 2011-04-24 22:00:00
这样的多个语句不是一个查询,它们形成一个脚本。查看提交SQL脚本。http://www.shinephp.com/php-code-to-execute-mysql-script/
https://stackoverflow.com/questions/5773469
复制相似问题