为什么mysql_num_rows总是在php中返回0

时间:2016-04-17 11:17:39

标签: php mysql sql

我使用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方法,但结果是一样的。
请帮助

1 个答案:

答案 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 statementsPDOprepared statements