MySQLi показывает только один результат

У меня есть простая проблема: моя функция MySQLi показывает только одну строку / результат в var_dump:

$sql = $db->query('SELECT * FROM '.$db_prefix.'_posts'); $row = $sql->fetch_array(); var_dump($row); 

Вот и все. Запрос в phpMyAdmin показывает 3 результата. Этот только 1. Он также не работает с fetch_assoc () или fetch_array ().

Изменить: Кроме того, я хочу, чтобы клавиши таблицы были перечислены как с «fetch_array ()».

Попробуйте цикл while:

 while($row = $sql->fetch_row()) { var_dump($row); } 

Поскольку fetch_row() , fetch_array() , fetch_assoc() будут возвращать одну строку каждый раз, когда она вызывается до тех пор, пока она не будет «из строк».

Вам придется повторять ваши результаты. Вы всегда можете использовать что-то вроде этого:

 $sql = 'SELECT * FROM '.$db_prefix.'_posts'; if ($result = $mysqli->query($sql)) { while($obj = $result->fetch_object()){ var_dump($obj); } } 

Однако это приведет к выходу большого количества данных (из-за var_dump). Для чистой продукции вы можете использовать

 $sql = 'SELECT * FROM '.$db_prefix.'_posts'; if ($result = $mysqli->query($sql)) { while($obj = $result->fetch_object()){ echo $obj->*sql_columnname_here*; // Repeat for all columns } } 

fetch_row () будет содержать только одну строку за раз

Попробуй это:

 $sql = $db->query('SELECT * FROM '.$db_prefix.'_posts'); $rows= $sql->fetch_row(); while ($row = $rows->fetch_row()) { echo $row[0]." ".$row[1]; }