2011-11-09 107 views
-3

我想使用下面的代碼來查看我的SQL表中是否存在一條記錄。SQL IF EXISTS命令

if (EXISTS(SELECT * FROM Logs WHERE id=$id)){ 
     mysql_query("UPDATE Logs SET loglevel = $loglevel WHERE id = $id;"); 
     mysql_close($con); 
     echo "ID: ". $id . "'s new Logging Level is " . $loglevel . ".<br />"; 
    } 
    else{ 
     echo "ID: ". $id . "was not in the table " . ".<br />"; 
    } 

但是,我不斷收到此錯誤。

Parse error: syntax error, unexpected T_STRING in /homepages/6/d382638756/htdocs/process.php on line 10

第10行是帶有IF EXISTS的行。有人可以幫我嗎?

感謝,

阿什溫

+0

您似乎直接將SQL與您的PHP混合。這是行不通的。所有的SQL都應該使用選擇的客戶端庫(在你的情況下爲mysql)針對數據庫執行 – Phil

+0

意外的字符串就是'if('' - 你正在將mySQL語法與php混合... –

回答

1

你混合SQL和PHP在一個非常奇怪的方式。我想你的意思是這樣的:

$result = mysql_query('SELECT COUNT(*) FROM Logs WHERE id="'.addslashes($id).'"', $con); 
$row = mysql_fetch_array($result); 
if ($row[0]) 
{ 

... 
+3

'addslashes()' ?至少使用'mysql_real_escape_string()' – Phil

+0

因爲我們通常都使用UTF-8,而不是那些具有有效多字節字符的第二個字節是引號/反斜槓的亞洲字符集,所以不應該有任何' addslashes'。 – AndreKR

0

看起來你是用MySQL語法混合PHP的sytax。

根據給出的示例代碼,您可能想要查看ON DUPLICATE KEY UPDATE