我正试着一排一排地排成这样:

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设置为等于行数?这是一个简单的例子,可以理解每一行代码的实际功能。

10-06 08:02