2011-11-21 69 views
0

這個查詢有什麼問題?它似乎對我來說是正確的:PHP中的MySQL查詢 - 不正確?

mysql_query("UPDATE culture SET cult_desc=$culture WHERE cult_id is $UID"); 

修改它,NetBeans仍然給我一個錯誤。這是我的頁面總代碼:

$culture = $_POST["culture"]; 
if (isset($_POST["id"])) 
    $UID = $_POST["id"]; 
    mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID"); 
else 
    mysql_query("INSERT INTO culture 
      VALUES(cult_desc='$culture')"); 
+0

爲什麼你覺得有什麼不對? – str

+0

,因爲顯然有錯誤 – matthiasmullie

回答

1

看到新編輯的代碼,您的更新語句現在是正確的,但你的INSERT語句現在是錯誤的。

嘗試:

mysql_query("INSERT INTO culture (culture_desc) 
      VALUES ('$culture')"); 
2

$ culture的價值是什麼? 如果它是一個字符串,則需要用引號封裝它。

同樣的事情$ UID。

而且,「是」在哪裏,條件應該是「=」

另外:看我們這個代碼。確保$文化和$ UID不能包含任何惡意值(從用戶如惡意輸入)

+0

這是一個內部管理系統,所以不會有惡意值。 –

2

cult_desc可能字符串,所以需要來包裝「」

mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id = $UID"); 
0
$sql = "UPDATE 'culture' SET `cult_desc` = '$culture' WHERE `cult_id` = '$UID'"; 

基本上,你重新使用而不是=

0

根據$ culture和$ UID的數據類型,您可能會缺少引號。 Cult_desc聽起來像一個字符串,因此$文化應該用引號引起來。

0

你應該經常檢查mysql_error.http://php.net/manual/en/function.mysql-error的輸出。

我通常也使用=而不是'is',並將所有輸入數據都用引號括起來。例如

$ sql =「UPDATE」culture'SET cult_desc ='「。$ culture。」'WHERE cult_id ='「。$ UID。」'「;

1

如果SET cult_desc是一個字符串,然後

mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id = $UID"); 

mysql_query("UPDATE culture SET cult_desc=$culture WHERE cult_id = $UID") 
1

你的問題的{和}如果else語句

$culture = $_POST["culture"]; 
if (isset($_POST["id"])){ 
    $UID = $_POST["id"]; 
    mysql_query("UPDATE culture SET cult_desc='$culture' WHERE cult_id=$UID"); 
}else{ 
    mysql_query("INSERT INTO culture 
      VALUES(cult_desc='$culture')"); 
}