Php mysqli_num_rows不断返回1,而0应该是答案

Php mysqli_num_rows不断返回1,而0应该是答案,php,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行。这是不正确的,因为表中没有数据 我试图使用这段代码来检查数据库中是否存在一个

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

$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\u query\u行返回
1
,而它应该是
0


使现代化 每当我使用以下代码时,它都会工作,但是
mysqli\u num\u行
仍然返回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"; }

输出:
有效

我无法重现该问题

<?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
        )
    ');
}
解决方案(临时?)

这解决了我的问题(目前)

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


使用
if($rnumber==”){echo“起作用!”;}否则{echo“不起作用”}
起作用。

你确定你的用户表是空的吗?如果你不明白为什么会发生这种情况,只需使用mysqli_fetch_数组(出于测试目的)获取行。这可能会让你知道为什么它返回了一个错误的答案。它是空的@Anantkumarsingh遗憾的是,这对@tismonvarghesey没有帮助。您更新的脚本无法正确测试是否已获取记录。例如,已提取记录的字段r_编号可能只是空的。如果(!$profile\u info\u row){echo'no record';}
Hmm,那就奇怪了。我想不出任何可能会修改信息的东西