mysqli_num_rows保持返回1而0应该是PHP的答案

时间:2015-07-09 12:26:14

标签: php

所以,我的问题是每当我使用这段代码时:

$rnumber_query = "SELECT r_number FROM users WHERE user_id='$user'";
$rnumber_query_run = mysqli_query($con, $rnumber_query);
$rnumber_query_rows = mysqli_num_rows($rnumber_query_run);

返回1行。这是不正确的,因为表中没有数据。

我试图使用这段代码来检查数据库中是否存在一串数字。

所以,那将是:

if($rnumber_query_rows == 0) { echo "String does not exist"; } 
else { echo "String does exist!"; }

如果我运行echo $rnumber_query_rows;,则会返回1,而0

更新

每当我使用以下代码时,它都有效,但mysqli_num_rows仍会返回1.

$profile_info_query = "SELECT * FROM users WHERE username='$username'";
$profile_info_query_run = mysqli_query($con, $profile_info_query);
$profile_info_row = mysqli_fetch_array($profile_info_query_run, MYSQLI_ASSOC);

$rnumber = $profile_info_row['r_number'];

if($rnumber == "") { echo "Works!"; } else { echo "Does not work"; }

输出:Works!

2 个答案:

答案 0 :(得分:0)

我无法重现问题

<?php
$con = new mysqli('localhost', 'localonly', 'localonly', 'test');
if ($con->connect_errno) {
    die('connect '. $mysqli->connect_error);
}
setup($con);

$rnumber_query = "SELECT r_number FROM sofoo_users WHERE user_id='1'";
$rnumber_query_run = mysqli_query($con, $rnumber_query) or die($mysqli->error);
$rnumber_query_rows = mysqli_num_rows($rnumber_query_run);
echo '#=', $rnumber_query_rows;

function setup($mysqli) {
    $mysqli->query('
        CREATE TEMPORARY TABLE sofoo_users (
            user_id int,
            r_number int
        )
    ');
}

按预期打印#=0

答案 1 :(得分:0)

解决方案(临时?)

这解决了我的问题(暂时)。

我不是100%确定这将是我的最终解决方案,因为它不是最好的方法。

使用if($rnumber == "") { echo "Works!"; } else { echo "Does not work"; }确实有效。