2013-02-28 143 views
1

我從使用參數刪除表中的行時遇到問題。下面是代碼:從mysql數據庫中刪除行

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'"); 
} 

問題是,!=似乎被錯誤理解,也許我dooing語法錯誤?

將apreciate任何幫助。

----- -----編輯

好吧,這裏是我現在有:

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的任何行?任何線索?

回答

0

問題是不是!=,但問題是,你曾用 「」 而不是在你的代碼在post_parent ='$ dbProductId'之間,ID!='$ dbProductThumbnail'「

mysql_query(」刪除wp_posts WHERE post_parent ='$ dbProductId',ID!='$ dbProductThumbnail'「); }

因此,corrent語法如下。

DELETE FROM wp_posts WHERE post_parent = '$ dbProductId' 和id!= $ dbProductThumbnail「

+0

更新了我的帖子,請看那裏。並且是一個錯誤,但它沒有幫助。 – 2013-02-28 10:47:51

+0

從wp_posts刪除WHERE post_parent ='$ dbProductId'AND ID <>'$ dbProductThumbnail' – 2013-02-28 10:50:44

+0

使用'<>'它會刪除所有內容,即使是ID爲'dbProductThumbnail'的行。 – 2013-02-28 10:55:59

3

它應該是AND而不是逗號。

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

作爲旁註,查詢是用SQL Injection脆弱,如果變量的值(小號)從外部來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。

0

使用ANDORWHERE聲明

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

更新我的帖子,請在那裏尋找。 'AND'是一個錯誤,但它沒有幫助。 – 2013-02-28 10:47:27