Php 如何从两个表中全部删除?

Php 如何从两个表中全部删除?,php,sql-delete,Php,Sql Delete,我是这个网站的新手(刚注册)。 这是一个简单的mysql/php查询,但就我个人而言,我似乎无法理解它 如何使用一个函数从两个表中删除所有内容(请参见我当前的编码) 感谢大家的回复:D您可以通过一个查询完成此操作,而无需进行两个单独的查询。可以像select语句或其他任何语句一样,用逗号将每个表名隔开 从表1中删除,表2中id=1 如果您想了解它,可以在MySQL文档中找到:您可以通过一个查询完成此操作,而无需进行两个单独的查询。可以像select语句或其他任何语句一样,用逗号将每个表名隔开 从

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

如何使用一个函数从两个表中删除所有内容(请参见我当前的编码)


感谢大家的回复:D

您可以通过一个查询完成此操作,而无需进行两个单独的查询。可以像select语句或其他任何语句一样,用逗号将每个表名隔开

从表1中删除,表2中id=1


如果您想了解它,可以在MySQL文档中找到:

您可以通过一个查询完成此操作,而无需进行两个单独的查询。可以像select语句或其他任何语句一样,用逗号将每个表名隔开

从表1中删除,表2中id=1


如果您想阅读它,它在MySQL文档中:

它应该是
MySQL\u查询(“从篮子中删除,其中session\u id='$id')。请注意,session_id函数可能返回空字符串,这可能会导致一些问题。另外,请注意,为了像这样使用它,表中的session_id列需要具有字符串类型,而不是整数。否则,您需要执行强制转换:

$id = (int)session_id();
mysql_query("DELETE FROM basket_item WHERE session_id = $id");

它应该是
mysql\u查询(“DELETE FROM basket\u item,其中session\u id='$id')。请注意,session_id函数可能返回空字符串,这可能会导致一些问题。另外,请注意,为了像这样使用它,表中的session_id列需要具有字符串类型,而不是整数。否则,您需要执行强制转换:

$id = (int)session_id();
mysql_query("DELETE FROM basket_item WHERE session_id = $id");

为什么不单独从每个表中删除两个完全独立的函数调用,因为这些表似乎不相关,而不是通过sessionid

为什么不单独从每个表中删除两个完全独立的函数调用,因为这些表似乎不相关,除了sessionid之外,您还可以尝试内部连接:

DELETE basket_item , postage  FROM postage  INNER JOIN basket_item  
WHERE postage.session_id = basket_item.session_id and session_id = '$id'
或者,您可以通过使用semi-colan进行分离来执行查询。semi-colan具有相同的效果并运行一次:

DELETE FROM basket_item WHERE session_id = '$id'; DELETE FROM postage WHERE session_id = '$id'; 

您可以尝试内部联接:

DELETE basket_item , postage  FROM postage  INNER JOIN basket_item  
WHERE postage.session_id = basket_item.session_id and session_id = '$id'
或者,您可以通过使用semi-colan进行分离来执行查询。semi-colan具有相同的效果并运行一次:

DELETE FROM basket_item WHERE session_id = '$id'; DELETE FROM postage WHERE session_id = '$id'; 


是否仅删除选定的行或完全清空表?如果要完全清空表,请在执行sql查询时使用
truncate table
,如果您只想删除特定的行,您上面的查询实际上是正确的,只需为每个表运行两次即可。警告:mysql_*已弃用,应替换为mysqli和PDO API和方法。感谢您的快速响应@dave,我想删除特定行(其中sessionid=$session_id)在一个表中,我需要它作为一个函数。当你说“运行两次”时,你的意思是创建两个单独的函数吗?删除选定的行还是完全清空表?如果要完全清空表,请在执行sql查询时使用
truncate table
,如果您只想删除特定的行,您上面的查询实际上是正确的,只需为每个表运行两次即可。警告:mysql_*已弃用,应替换为mysqli和PDO API和方法。感谢您的快速响应@dave,我想删除特定行(其中sessionid=$session_id)在一个表中,我需要它作为一个函数。当你说“运行两次”时,你的意思是创建两个独立的函数吗?谢谢你的及时回复@zarathuztra,但我已经实现了你的答案,仍然没有运气。(以下是变化)。函数startagain(){$id=session_id();返回mysql_查询(“DELETE FROM basket_item,postage WHERE
session_id
='$id');}结果集的实际输出是什么?报告了错误吗?没有,没有发现错误。其结果是,它继续进入下一页,但实际上并没有删除任何内容。奇怪,我知道!我在一个php文件中运行了这个函数,当您按下submit[empty basket]并返回到索引页面时,会调用该文件。该方法有效,但实际的it本身无效!有什么建议吗?你说什么都没删掉?会话id列的数据类型是什么?另一个尝试是在表名周围加上勾号。只是良好的实践,有时会结束愚蠢的结果。不,没有任何东西被删除。我的数据类型在我的mysql表中设置为VARCHAR谢谢你的及时回复@zarathuztra,但我已经实现了你的答案,仍然没有得到任何运气。(以下是变化)。函数startagain(){$id=session_id();返回mysql_查询(“DELETE FROM basket_item,postage WHERE
session_id
='$id');}结果集的实际输出是什么?报告了错误吗?没有,没有发现错误。其结果是,它继续进入下一页,但实际上并没有删除任何内容。奇怪,我知道!我在一个php文件中运行了这个函数,当您按下submit[empty basket]并返回到索引页面时,会调用该文件。该方法有效,但实际的it本身无效!有什么建议吗?你说什么都没删掉?会话id列的数据类型是什么?另一个尝试是在表名周围加上勾号。只是良好的实践,有时会结束愚蠢的结果。不,没有任何东西被删除。我的数据类型在mysql表中设置为VARCHAR谢谢回复。虽然我不明白你的答案。我的session_id不是整数,因为它既可以联系字母也可以联系数字。我的session_id的表结构设置为VARCHAR,这是可以接受的。您可能已经将session_id列设置为整数,我提到了这一点以避免其他问题。是的,可以接受varchar。谢谢回复。虽然我不明白你的答案。我的session_id不是整数,因为它既可以联系字母也可以联系数字。会话\u id的表结构设置为VARCHAR,这是可以接受的。您可能已将会话\u id列设置为整数,而我