我是这个网站的新手(刚刚注册)。 它是一个简单的mysql / php查询,但对于我的生活,我似乎无法理解它。
如何使用一个功能从两个表中删除所有内容(请参阅我当前的编码)?
$id = session_id();
return mysql_query("DELETE FROM `basket_item` AND `postage` WHERE `session_id` = '$id'");
感谢大家的回复:D
答案 0 :(得分:1)
应该是mysql_query("DELETE FROM basket_item WHERE session_id = '$id'");
。请注意,session_id函数可能返回一个空字符串,这可能会导致一些问题。另外,请注意,为了像这样使用它,表中的session_id列需要有一个字符串类型,而不是整数。否则,您需要执行强制转换:
$id = (int)session_id();
mysql_query("DELETE FROM basket_item WHERE session_id = $id");
答案 1 :(得分:0)
您可以使用单个查询执行此操作,而无需进行两次单独的查询。你可以用逗号分隔每个表名,就像select语句或其他任何东西一样。
DELETE FROM table1,table2 where id = 1;
如果您想阅读它,请参阅MySQL文档:http://dev.mysql.com/doc/refman/5.0/en/delete.html
答案 2 :(得分:0)
为什么不单独执行2个完全独立的函数调用来从每个表中删除,因为除了sessionid之外,这些表似乎没有关联
答案 3 :(得分:0)
你可以尝试内连接:
DELETE basket_item , postage FROM postage INNER JOIN basket_item
WHERE postage.session_id = basket_item.session_id and session_id = '$id'
或者您可以通过使用semi-colan执行查询具有相同的效果并运行一次:
DELETE FROM basket_item WHERE session_id = '$id'; DELETE FROM postage WHERE session_id = '$id';