json_encode не возвращает данных

#php #json

#php #json

Вопрос:

Приведенный ниже php-скрипт не возвращает никаких данных. Если я использую предложение where для ограничения данных, скрипт возвращает данные нормально. Но если я попытаюсь выбрать все строки (около 1400), ничего не возвращается. Когда я запускаю скрипт в своем браузере, ничего не выдает ошибок, это просто пустая страница.

 $conn = new mysqli($serverName, $userName, $password, $dbname);

if ($conn->connect_error) 
{
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM alumni_database.alumni;";

$result = $conn->query($sql);

while($row = mysqli_fetch_assoc($result)) 
{
    $rows[]=$row;
}

$result->close();
$conn->close();

print(json_encode($rows));
  

РЕШАЕМАЯ: Проблема была с utf8_encoding . Как только я добавил строку:

 $conn->query('SET CHARACTER SET utf8');
  

Скрипт вернул все строки.

Комментарии:

1. Если это поможет, вы можете попытаться проверить, есть ли ошибка, кодирующая $rows с помощью json_last_error()

2. и… error_reporting(E_ALL); ini_set('display_errors', '1');

3. Я попытался вставить эту строку в код, и ничего не отобразилось. Я также пробовал utf8_encode, это тоже не сработало.

4. попробуйте также добавить после вашего print echo json_last_error_msg()

5. После $result = $conn->query($sql); добавления if ( ! $result ) { echo $conn->error; exit; }