我正在尝试像这样逐行获取特定行:
while($getRowCount = $query->fetch_assoc()){ $uid = $getRowCount['ID'];
接下来,我在第二个表中选择相应匹配的行,如下所示:
$getFullName = $db->prepare("SELECT * from registered_users where id = ?"); $getFullName->bind_param("i",$uid); $getFullName->execute(); if(($getFullName = $getFullName->num_rows) == 1){ echo 'code reach'; $getname = $getFullName->fetch_assoc(); $FirstName = $getname['first_name']; $LastName = $getname['last_name']; echo ' <br/> <div id ="connect" style="font-weight:bold; font-size: 15px; color: #CF0B05;"> <strong>'.$FirstName.' '.$LastName.'</strong> </div><hr/>'; } }
问题是 num_rows == 1 不会返回 true,尽管表中有该行的匹配项。
此外,如果我强行计算 num_rows == 0,它会回显“code reach”但自身会附加一些错误。我不明白为什么尽管有一行,但 num_rows == 1 不返回 true。
Notice: Trying to get property of non-object in /var/www/html/pages.php on line 634
Fatal error: Call to a member function fetch_assoc() on integer in /var/www/html/pages.php on line 635
有关如何解决此问题的任何建议都会有很大帮助。
最佳答案
看看你的表达式:($getFullName = $getFullName->num_rows) == 1
您首先将 $getFullName
设置为等于行数(整数),然后查看它是否等于 1
。然后您稍后尝试将 $getFullName
作为对象访问:
$getname = $getFullName->fetch_assoc();
所以你当然会得到错误:
Fatal error: Call to a member function fetch_assoc() on integer in /var/www/html/pages.php on line 635
为什么要将 $getFullName
设置为等于行数?这是了解每一行代码实际作用的简单案例。
关于php - num_rows 在 php/mysqli 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182288/