2011-02-11 88 views
5

我試着去兩個變量傳遞到一個MySQL查詢,並通過會話變量時,在低於其卡住:添加會話變量到MySQL查詢中使用PHP

$check = mysql_query("SELECT * 
         FROM Clients 
         WHERE Username = '$new_username' 
         AND Username != '$_SESSION['Username']'") or die(mysql_error()); 

任何提示嗎?提前致謝。

+0

試試這個` 「SELECT * FROM客戶其中username = '$ new_username' 和用戶名!= '」。$ _ SESSION [ '用戶名'。 「'」` – 2011-02-11 12:24:43

+2

「卡住」 是不是一個真正的錯誤信息。這產生了什麼輸出? – 2011-02-11 12:27:00

+0

乾杯Shakti多數民衆贊成在工作:) – Matt 2011-02-11 12:31:21

回答

5

這是因爲您的單引號'$_SESSION['Username']'已被會話中的值終止。將其更改爲'" . $_SESSION['Username'] . "'將解決該問題。

6

這是可行的,但這是非常,非常糟糕

$check = mysql_query(" 
    SELECT * 
    FROM Clients 
    WHERE Username = '$new_username' 
    AND Username != '{$_SESSION['Username']}' 
") or die(mysql_error()); 

這也應當制定並建議這樣做的方式:

$check = mysql_query(" 
    SELECT * 
    FROM Clients 
    WHERE Username = '" . mysql_real_escape_string($new_username) . "' 
    AND Username <> '" . mysql_real_escape_string($_SESSION['Username']) . "' 
") or die(mysql_error()); 
0

當您在爲字符串嵌入陣列,你必須通過連接它們或使用大括號將它們分開。

$string = "text text {$array['key']} text"; 

$string = "text text " . $array['key'] . " text"; 
0

爲什麼沒有人說的 「文字文本$陣列[關鍵]文本」 語法?

SELECT * 
FROM Clients 
WHERE Username = '$new_username' 
AND Username != '$_SESSION[Username]'