[英]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.