[英]MySQL Insert syntax error - Cant find it!
我總會在這里想念一些小東西,但我終生找不到。
$insert = mysql_query("INSERT INTO USERS
(`FBID`, `FIRST_NAME`, `LAST_NAME`, `GENDER`)
VALUES ('$fbid', '$firstName', '$lastName', '$gender')");
錯誤是:
錯誤:SQL語法中有錯誤; 檢查與MySQL服務器版本對應的手冊,以便在第1行的“1”附近使用正確的語法
有任何想法嗎?
您沒有正確地對變量進行轉義。 使用mysql_real_escape_string
和類似的代碼:
$insert = mysql_query("INSERT INTO USERS (`FBID`, `FIRST_NAME`, `LAST_NAME`, `GENDER`)
VALUES (
'".mysql_real_escape_string($fbid)."',
'".mysql_real_escape_string($firstName)."',
'".mysql_real_escape_string($lastName)."',
'".mysql_real_escape_string($gender)."'
)");
如果變量包含任何引號,那么如果您沒有正確地對它們進行轉義,它們就會產生問題。
您的名字中是否有單引號?
嘗試將查詢的值寫到log / console / debug中,以確保它符合您的期望。
嘗試將變量包裝在{}中。
'{$fbid}', '{$firstName}', '{$lastName}', '{$gender}'
否則,您將不得不使用字符串連接。 ' “$ FBID。”' ' “$您的名字。”',“” ...
我假設您的變量已經包含正確的轉義數據。
嘗試這樣做:
$sql = <<EOL
INSERT INTO USERS (`FBID`, `FIRST_NAME`, `LAST_NAME`, `GENDER`)
VALUES ('$fbid', '$firstName', '$lastName', '$gender')
EOL;
$stmt = mysql_query($sql) or die("MySQL error: " . mysql_error());
這將在$sql
為您保留查詢,以便您可以在其他地方回顯該查詢並查看實際生成的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.