mysqli_num_rows返回false而不是true

时间:2013-05-20 14:40:24

标签: php mysql mysqli

我很难从数据库中的表中获取行,因为mysqli_num_rows总是返回false。这是我的代码的摘录:

$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysqli_num_rows(mysqli_query($conn, $query)))
{
$row = mysqli_fetch_row($results);
echo $row[1]
}

我没有得到echo $row[1]的结果。然后我将if语句替换为另一个语句:

    if (!mysqli_num_rows(mysqli_query($conn, $query)))
    echo 'no rows!'

得到'没有行!'在浏览器上。

我已成功连接到数据库,其他查询工作正常。请,我想了解为什么mysqli_num_rows将返回false,即使表中的行与查询匹配。

4 个答案:

答案 0 :(得分:1)

应该是

$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) > 0){
$row = mysql_fetch_row($results);
  echo $row[1];
}else{
  echo 'user does not exist'; 
}

答案 1 :(得分:1)

$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(queryMysql($query)))
{
$row = mysql_fetch_row($results);
echo $row[1]
}

尝试一步一步:

$Query = mysql_query($query);
$Results = mysql_num_rows($Query);

if ($Results === 0){
 echo "No Results";
}else{
 $row = mysql_fetch_row($query);
 echo $row[1];
}

答案 2 :(得分:0)

如果有行,这应该是它的样子:

$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) != 0) {
$row = mysql_fetch_row($results);
echo $row[1]
}

如果没有行,它应该是这样的:

if (mysql_num_rows(mysql_query($query)) == 0) {
    echo 'no rows!'
}

最好的方法就是这样:

$query = "SELECT * FROM table1 WHERE user = '$user'";
if (mysql_num_rows(mysql_query($query)) != 0) {
$row = mysql_fetch_row($results);
echo $row[1]
}else{
if (mysql_num_rows(mysql_query($query)) == 0) {
    echo 'no rows!'
}}

答案 3 :(得分:0)

如果queryMysql方法是自定义的,则很可能它不返回资源(即它可能返回一个数组)。这个的标志是mysql_num_rows返回文字false如果是这种情况,你可以在数组上使用count

如果mysql_num_rows返回0而不是false,则表示查询确实没有返回任何行。