我使用php脚本制作登录页面。我使用mysql_num_rows()方法,如果它只与第一行匹配则返回1,当第二行或第三行匹配时返回0。
这是我的代码:
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT id,username,password FROM user_data WHERE username = '$username' and password = '$password'";
$result = mysqli_query($sql);
$count = mysqli_num_rows($result);
这里我也尝试了mysqli方法,但结果是一样的。
请帮助
答案 0 :(得分:2)
查看上一个问题How to insert array of array in phpmyadmin using php
您正在使用MySQL_ API进行连接(或者很可能看到使用mysql_
函数,并且您可能认为您会将几个i
放到那些MySQLi_中函数以及MySQL _。
您需要使用相同的API连接到查询。
但是,如果您使用MySQLi_进行连接(未知),则不会将db连接传递给您的查询并作为第一个参数。
这一行$result = mysqli_query($sql);
这看起来像是:
$result = mysqli_query($connection, $sql);
还要确保POST数组确实包含值。
请参阅有关连接MySQLi_ API的手册:
咨询调试的其他链接:
正如评论中所述:
您目前的代码向SQL injection开放。使用mysqli
with prepared statements或PDO与prepared statements。