Php 当mysqli\u query()返回true时,mysqli\u fetch\u row()返回false

Php 当mysqli\u query()返回true时,mysqli\u fetch\u row()返回false,php,mysqli,Php,Mysqli,我目前正在尝试从数据库中的多个表中读取数据,并以表格形式显示结果 但是mysqli\u query()返回true和mysqli\u fetch\u row()返回false。 $link是已初始化的连接对象 代码片段1: $sql = " SELECT * FROM users_list, user_personal_details, user_bank_details WHERE users_list.email = user_personal_det

我目前正在尝试从数据库中的多个表中读取数据,并以表格形式显示结果

但是
mysqli\u query()
返回
true
mysqli\u fetch\u row()
返回false。
$link
是已初始化的连接对象

代码片段1:

$sql = "
    SELECT *
    FROM users_list, user_personal_details, user_bank_details
    WHERE
        users_list.email = user_personal_details.email AND
        users.email=userbank_details.email
    LIMIT $num_rec_per_page
    OFFSET $start_from"; 

$rs_result = mysqli_query($link, $sql);

if ($rs_result == false) {  
    echo "Query failed";
    exit();
}
else echo "Query successful";
代码段2:

$row = mysqli_fetch_row($rs_result);
if ($row == false)
    echo "Invalid";

while ($row = mysqli_fetch_row($rs_result)) { 
    echo "In loop";
    $name = $row['name'];
    $date_added = $row['date_added'];
    echo $name;
    echo $date_added;
}
出于调试目的,
mysqli\u fetch\u row()
已在循环外部使用。 将打印消息查询成功。 消息无效已打印。
原因可能是什么?

可能是您的查询返回true,但可能不返回任何结果。请使用
mysqli\u num\u rows()
检查您的查询返回的行数

不要两次取行

$sql = "SELECT * FROM users_list,user_personal_details,user_bank_details where users_list.email=user_personal_details.email and users.email=userbank_details.email LIMIT $num_rec_per_page OFFSET $start_from";
    $rs_result = mysqli_query($link, $sql); //run the query
    if ($rs_result == false) {
        echo "Query failed";
        exit();
    } else {
        $data = mysqli_num_rows($rs_result);
        if ($data > 0) {
            while ($row = mysqli_fetch_row($rs_result)) {
                $name = $row['name'];
                $date_added = $row['date_added'];
                echo $name;
                echo $date_added;
            }
        } else {
            echo "No result found";
        }
    }

您调用mysqli_fetch_row()两次,第二次调用可能会得到
false

可能是您的查询返回true,但可能不会返回任何结果。使用
mysqli_num_rows()
检查查询返回的行数,并两次检查您的正在获取行
mysqli_fetch_row()
返回
数组
不是
布尔值
例如
$row=mysqli\u fetch\u行($rs\u result);如果($row==false)