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

Uko*_*kor 0 php mysql mysqli

我有一个功能

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

问题是,当我调用此函数时,它只返回数据库中的第一个条目.我怎么能做这个工作,它假设返回表中的所有数据.我也尝试了这个,它也没有用

    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);
    }
    }
Run Code Online (Sandbox Code Playgroud)

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

有人可以帮帮我吗.PS我会让它返回数据中所有数据的数组,这样我就可以对它进行foreach操作.谢谢

Mat*_*t S 5

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

$result = mysqli_query($database_connection, $sql);
return mysqli_fetch_all($result);
Run Code Online (Sandbox Code Playgroud)

旁注:这比返回结果集资源并在函数外部根据需要循环遍历它效率低. fetch_all必须将所有结果转换为数组,然后可能是您稍后循环遍历此数组.