2012-07-23 79 views
1

經過許多小時的試圖瞭解這個簡單查詢的錯誤之後,有什麼我錯過了?它正確發佈,並且一切正常(例如,它正確更新數據庫),但每次提交時都會顯示以下錯誤:在MySQL語法中無法解決錯誤 - 可行,但顯示錯誤消息

錯誤:您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在線路附近使用「1」手動1

$eventIDResult = ((int)$_POST["eventIDResult"]); 
$eventNameResult = ($_POST["eventNameResult"]); 
$eventTextResult = ($_POST["eventTextResult"]); 
$eventDateResult = ($_POST["eventDateResult"]); 
$eventAgendaResult = ($_POST["eventAgendaResult"]); 
$sql = mysql_query("UPDATE events SET eventName='$eventNameResult', eventText='$eventTextResult', eventDate='$eventDateResult', eventAgenda='$eventAgendaResult' WHERE eventID='$eventIDResult'"); 
if (!mysql_query($sql, $con)) 
{ 
die('Error: ' . mysql_error()); 
} 
else 
{ 
header('Location: ../add-remove-event.php'); 
exit; 
} 
mysql_close($con); 
+1

當然,所有的字段都是varchar?他們都不是INT或類似的?是INT類型的eventID(因此不需要單引號)? – Alfabravo 2012-07-23 20:49:28

+0

謝謝,這是正確的,我已經刪除了單引號。 – 2012-07-23 20:53:19

+0

@Alfabravo:由於自動類型轉換(幾乎適用於每個RDBMS系統),單引號對於INT類型實際上是完全有效的。我同意,雖然這不是很好的做法。 – mellamokb 2012-07-23 21:03:55

回答

4

你在以前mysql_query,這可能返回的行數的結果調用mysql_query受影響(在這種情況下,1):

$sql = mysql_query(...) 
if (!mysql_query(...)) 

什麼你可能是指做只是把查詢字符串中的:

$sql = "..."; 
if (!mysql_query($sql, $con)) 
... 
+0

非常感謝! – 2012-07-23 20:59:39

1

移動該評論作爲答案,以便觀衆在未來知道答案是什麼。

確保所有字段都是varchar。 ¿他們都不是INT或類似的? ¿是INT類型的eventID(因此不需要單引號)?