0
我使用的存儲$ _SESSION用戶名:
$usernameunesc = htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');
和逃避的變量,如下所示:
$username = mysqli_real_escape_string($link, $usernameunesc);
,然後用它來執行以下查詢:
$query = mysqli_query($link, "SELECT id FROM users WHERE username = '".$username."'");
的最後查詢返回輸出
1111
如果我從查詢中刪除$username
並將其更改爲'demo'(這就是用戶名的實際內容),查詢將成功返回12的id,但使用$username
變量不起作用。我沒有正確逃脫弦?有一個更好的方法嗎?順便說一句,我也可以在SQL命令行中執行查詢,並且它工作正常,所以我知道查詢不是問題。
是的,有,請閱讀這篇文章:http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php – 2013-05-03 17:21:10
我認爲你的報價是錯誤的。試着讓你的查詢'「SELECT id FROM users WHERE username ='$ username'」' – ntgCleaner 2013-05-03 17:22:56