从mysql数据库中删除行

时间:2013-02-28 09:15:50

标签: php mysql sql database sql-delete

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

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'。问题是,为什么这个命令不删除post_parent为'16'且ID不是17的任何行?任何线索?

3 个答案:

答案 0 :(得分:3)

它应该是AND而不是逗号。

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

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

答案 1 :(得分:0)

AND声明中使用ORWHERE

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

答案 2 :(得分:0)

问题不在!=但问题是你在代码中使用了“,”而不是AND,在post_parent ='$ dbProductId',ID!='$ dbProductThumbnail'“

之间

mysql_query(“DELETE FROM wp_posts WHERE post_parent ='$ dbProductId',ID!='$ dbProductThumbnail'“); }

所以,正确的语法如下。

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