2012-02-28 64 views
0

此行:$quey1="select * from clients WHERE USER == $current_user->user_login;";MYSQL PHP凡查詢錯誤

它返回一個未知的錯誤。我的代碼中必須有一個簡單的語法錯誤,但我似乎無法弄清楚。 BTW $current_user->user_login;返回用戶,例如admin

任何想法這裏有什麼問題嗎?我真的很新(第一次觸摸php和mysql)

謝謝你的幫助!

回答

4
$quey1 = "SELECT * FROM clients WHERE USER = '" . $current_user->user_login . "'" 

您應該將這些也照顧:

  • 逃逸
  • 準備好的發言
  • PDO
+0

臨時nks :)。這很好用!你能解釋一下「。」嗎?是給?他們的意思是什麼? – cmplieger 2012-02-28 19:39:20

+0

它們表示字符串concination,但主要問題是缺少單個qoutes和錯誤的運算符(==)。 – 2012-02-28 19:40:27

0

你需要在引號包裹current_user->user_login。否則MySQL認爲它是一個列。錯誤是沒有名爲「admin」的列。

1

你不需要在MySQL中有一個double equals運算符。任何字符串比較都需要引號。

$quey1 = "select * from clients WHERE USER = '{$current_user->user_login}'"; 
2

PHP變量可以在SQL查詢被用作單引號爲字符串(所以$something字面解釋爲$something,不是一個變量)處理(用於提供雙引號,它們的值被簡單地取代的查詢的時間,但是無法使用變量操作符,最好的辦法是用一個變量替換它,並且查詢中的分號不需要,因爲它被解釋爲一列,==可以替換爲=當您提取數據時,未設置數據:

$user = $current_user->user_login; 
$quey1 = "select * from clients WHERE USER == $user";