php - 如何在 mysql php 中使用 IN OPERATOR 删除所有行

标签 php mysql

我在理解该程序的行为时遇到问题,下面是使用 IN 运算符删除电子邮件地址的简单代码

$emails = $_POST['ids'];
    $sql = "DELETE FROM newsletter where email ";
    $condition = sprintf('IN ("%s")',implode(' "," ',$_POST['ids']));
    $sql = $sql.$condition;
    include '../includes/db.php';
    $r = mysql_query($sql);

    echo $sql;

它只删除一个电子邮件 ID 并返回 true 。我怎样才能让它以删除所有电子邮件的方式运行。

下面是使用上述代码构建的查询。

DELETE FROM newsletter where email IN ("adfadsf@gmail.com "," asdfasfasf@gmail.com "," kjhkhsd@assdfsdf.sdfsf "," shit@gshit.com "," someother@gmail.com")

是不是删除方式不对?

最佳答案

而不是:

$condition = sprintf('IN ("%s")',implode(' "," ',$_POST['ids']));

做:

$condition = sprintf('IN ("%s")',implode('", "',$_POST['ids']));

IN 运算符将字段内容与值完全匹配。值开头和结尾的空格可能会导致您出现问题。

关于php - 如何在 mysql php 中使用 IN OPERATOR 删除所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6745270/

相关文章:

php - PHP中00 :00:00 to hours,分秒怎么转换?

MySQL : weekly and monthly average

php - 如何使用 PDO (mysql) 正确调试 Insert 语句?

Mysql子查询结果

mysql - 如何从事件记录对象获取数据库 sql 值?

php - 如何使用 javascript 轮询 PHP 页面?

php - Instagram API订阅,如何获取帖子?

php - 根据 WooCommerce 中的总额自动应用百分比或固定购物车折扣

php - 如何在 PHP 中获取有用的错误消息?

mysql - LEFT JOIN MySQL 语句中的 CONCAT