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