2011-09-08 199 views
0

我開發的網站PHP腳本,我就遇到了這個錯誤SQL語法錯誤

「您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的使用權語法手冊附近「=‘’WHERE電子郵件=‘[email protected]’」在1號線

我已經改變了一切都有可能,但我仍然不能得到它

繼承人我用鱈魚:

$query = "SELECT * FROM users WHERE email='$email'"; 
$result = mysql_query($query) or die(mysql_error()); 
$num=mysql_num_rows($result); 
if(num == 0){} 

如果你會這麼好心地幫我解決這個問題,我將不勝感激

+0

您可以試試這個$ result:'$ result = mysql_query(「選擇電子郵件從用戶WHERE電子郵件='電子郵件'')或死(....);' – Eray

+0

您的單/雙報價看起來有點奇怪。你在單詞「nobody」之前有一個單引號,看起來不合適。 – kinakuta

+0

完整性檢查:在「用戶」表中是否有一個名爲「email」的列?如果是這樣,請嘗試在表實體周圍添加反引號(就在鍵盤上的數字1的左側):「SELECT \'email \'FROM \'users \'WHERE \'email \'='$ email'」 – Joe

回答

0

嘗試串聯查詢字符串是這樣的:
(string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";
如果你使用phpMyAdmin爲你的MySQL服務器嘗試複製和粘貼到SQL選項卡上面的字符串,看看是否有什麼不同情況
echo (string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";

2

必須轉義$電子郵件變量:

$email = mysql_real_escape_string($email); 

$query = sprintf("SELECT * FROM users WHERE email= '%s'", $email); 
    $result = mysql_query($query) or die(mysql_error()); 
    $num=mysql_num_rows($result); 
if(num == 0){} 

預防sql injection