如何从两个表中删除所有内容?

时间:2013-12-07 21:28:51

标签: php sql-delete

我是这个网站的新手(刚刚注册)。 它是一个简单的mysql / php查询,但对于我的生活,我似乎无法理解它。

如何使用一个功能从两个表中删除所有内容(请参阅我当前的编码)?

  $id = session_id();
  return mysql_query("DELETE FROM `basket_item` AND `postage` WHERE `session_id` = '$id'");

感谢大家的回复:D

4 个答案:

答案 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';