PHP函数并没有返回MySQL表中的所有数据


PHP function is not returning all the data in MySQL table

我有一个函数

    function get_table_content(){
$sql = "SELECT * FROM my_table WHERE id > 0";
$result = $this->query($sql);
while ($row = $this->fetch($result)){
return ($row);
}
}

问题是,当我调用这个函数时,它只返回数据库中的第一个条目。假设返回表中的所有数据,我该怎么做呢。我也试过这个,它不起作用太

    function get_table_content(){
    global $database_connection;
    $sql = "SELECT * FROM my_table WHERE id > 0";
    $result = mysqli_query($database_connection, $sql);
    while ($row = mysqli_fetch_assoc($result)){
    return ($row);
    }
    }

我认为最好的方法是返回一个数组并对其进行foreach操作,但我无法使其工作。

有人能帮帮我吗。P.S.我会将它预处理为返回数据中所有数据的数组,这样我就可以对它进行foreach操作。感谢

return在循环的第一次迭代期间立即停止执行函数。获取所有记录并返回:

$result = mysqli_query($database_connection, $sql);
return mysqli_fetch_all($result);

附带说明:与返回结果集资源并根据需要在函数外循环使用相比,这效率更低。fetch_all必须将所有结果转换为数组,然后推测您稍后将循环使用此数组。

问题是,在while循环中,从结果集中获取一行后,您将返回函数的结果,因此您只从结果集中获得第一行。使用mysqli_fetch_all()函数或while循环中的数组来存储结果。

方法(1):

function get_table_content(){
    global $database_connection;
    $sql = "SELECT * FROM my_table WHERE id > 0";
    $result = mysqli_query($database_connection, $sql);
    return mysqli_fetch_all($result);
}

方法(2):

function get_table_content(){
    global $database_connection;
    $sql = "SELECT * FROM my_table WHERE id > 0";
    $result = mysqli_query($database_connection, $sql);
    $r = array();
    while ($row = mysqli_fetch_assoc($result)){
        $r[] = $row;
    }
    return $r;
}

while循环中有一个返回,它终止该循环并返回第一行数据。