2013-06-05 55 views
0

,所以我试图让一个登录系统和它不工作,因为每次我通过这个测试代码的行数:为什么心不是我的mysqli查询返回任何行

$username=$_POST['username']; 
$password=$_POST['password']; 
$username = stripslashes($myusername); 
$password = stripslashes($mypassword); 
$username = mysqli_real_escape_string($username); 
$password = mysqli_real_escape_string($password); 
$result=mysqli_query($connect,"SELECT * FROM users WHERE username='$username'"); 
$count=mysqli_num_rows($result); 
if($count==1){ 

,但每次我运行它不返回1,我甚至不知道如何检查它的返回和当我删除$用户名的''标记它出现无效查询

使用PHP的5.4.4-14我使用Ver 14.14 Distrib 5.5.31,用于使用readline 6.2的debian-linux-gnu(armv7l)和Apache/2.2.22(Debian)

+0

mysql ver 14.14? – manix

+0

'var_dump($ count)' – Achrome

+5

mysqli_real_escape_string需要连接... http://php.net/manual/en/mysqli.real-escape-string.php –

回答

0

你应该是真实的ly切换到预处理语句,而不是直接在查询中注入变量,但是问题是由mysqli_real_escape_string()引起的。该函数需要两个参数,第一个参数是mysqli连接。

+0

你是什么意思'预先准备好的语句? – user1895629

+0

@ user1895629我更喜欢使用PDO,但对于mysqli:http://php.net/manual/en/mysqli.prepare.php。检查这些示例,将使用变量应该在其中的占位符准备语句,然后将变量绑定到占位符,从而不需要转义。 – jeroen

+0

@ user1895629他的意思是['mysqli_prepare()'](http://php.net/mysqli-prepare)。 – BlitZ

相关问题