簡體   English   中英

mysqli_num_rows繼續返回1,而0應該是答案PHP

[英]mysqli_num_rows keeps returning 1 while 0 should be the answer 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!

我無法重現問題

<?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

解決方法(臨時?)

這解決了我的問題(目前)。

我不是100%肯定這將是我的最終解決方案,因為這不是最好的方法。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM