使用單引號VS有什麼區別。在整個SQL查詢中使用雙引號?PHP - 單引號或雙引號SQL查詢?
哪個更好:
這種方法(單引號):
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql = 'SELECT * FROM users WHERE username = "' . $username . '" AND password = "' . $password . '" LIMIT 1';
?
或者這種方法(使用雙引號):
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql = "SELECT * FROM users WHERE username = '{$username}' AND password = '{$password}' LIMIT 1";
有沒有什麼更好的方法來做到這一點?
對我來說,我喜歡第一種方法,因爲我總是比較喜歡PHP中的單引號。所以我想確保在整個SQL查詢周圍使用單引號是確定的,並且圍繞變量或數據使用雙引號是可以的,並且是跨平臺的,並且可以用於MySQL以外的數據庫!
我可能會誤會,但我記得插值(你的第二種方法)比連接(你的第一種)更快 – Phil
由於[SQL注入攻擊](http://xkcd.com/327/)的易感性, 。強烈建議PDO或準備好的聲明。 –
@OMG小馬:即使他們使用'mysql_real_escape_string'? – icktoofay