【问题标题】:Deleting rows from mysql database从mysql数据库中删除行
【发布时间】:2013-02-28 09:15:49
【问题描述】:

我在使用参数从表中删除行时遇到问题。代码如下:

if ($dbProductImageIdNumber) {
$ImagesToDeleteNumber = $dbProductImageIdNumber -1 - $numItemImages;
echo "$dbProductImageIdNumber" . ' ';
echo "$numItemImages" . ' ';
echo "$ImagesToDeleteNumber" . ' ';
echo 'Deleting';
mysql_query("DELETE FROM wp_posts
WHERE post_parent = '$dbProductId' ,ID != '$dbProductThumbnail'");
}

问题是!=似乎理解错误,也许我在做语法错误?

将感谢任何帮助。

-----编辑-----

好的,这就是我现在所拥有的:

if ($dbProductImageIdNumber) {
$ImagesToDeleteNumber = $dbProductImageIdNumber -1 - $numItemImages;
echo "$dbProductImageIdNumber" . ' ';
echo "$numItemImages" . ' ';
echo "$ImagesToDeleteNumber" . ' ';
echo "$dbProductId" . ' ';
echo "$dbProductThumbnail" . ' ';
mysql_query("DELETE FROM wp_posts
WHERE post_parent = '$dbProductId' AND ID != '$dbProductThumbnail'");
}

示例:我的 $dbProductId 是 '16' 和 $dbProductThumbnail '17'。 Qestion 是,为什么这个命令不删除 post_parent 为 '16' 且 ID 不是 17 的任何行?有线索吗?

【问题讨论】:

    标签: php mysql sql database sql-delete


    【解决方案1】:

    应该是AND 而不是逗号。

    DELETE FROM wp_posts
    WHERE post_parent = '$dbProductId' AND ID != '$dbProductThumbnail'
    

    作为旁注,如果变量的值(s)来自外部,则查询很容易受到SQL Injection 的攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

    【讨论】:

      【解决方案2】:

      问题不是 != 而是问题在于您在代码中使用了“,”而不是 AND 之间的 post_parent = '$dbProductId' ,ID != '$dbProductThumbnail'"

      mysql_query("从 wp_posts 中删除 WHERE post_parent = '$dbProductId' ,ID != '$dbProductThumbnail'"); }

      所以,正确的语法如下。

      从 wp_posts 中删除 WHERE post_parent = '$dbProductId' AND ID != '$dbProductThumbnail'

      【讨论】:

      • 更新了我的帖子,请看这里。 AND 是一个错误,但它没有帮助。
      • 从 wp_posts 中删除 post_parent = '$dbProductId' AND ID '$dbProductThumbnail'
      • 使用<> 它会删除所有内容,甚至是ID$dbProductThumbnail 的行。
      • 哦,那是我的错误。$dbProductThumbnail 是空的。所以现在它起作用了! :) 非常感谢!似乎所有这些答案都是正确的,但我想我会标记你的答案,因为你对我帮助最大,而且我可以看到你也最需要代表点数。 :)
      【解决方案3】:

      在您的 WHERE 语句中使用 ANDOR

      DELETE FROM wp_posts
      WHERE post_parent = '$dbProductId' AND ID != '$dbProductThumbnail'
      

      【讨论】:

      • 更新了我的帖子,请看这里。 AND 是一个错误,但没有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2019-09-16
      相关资源
      最近更新 更多