json_encode не возвращает ничего

Я пытаюсь преобразовать данные таблицы MYSQL в JSON. Я пытаюсь использовать json_encode (). Но это не работает. Он ничего не возвращает. Я проверил консоль, даже не сделал никаких ошибок. Что мне не хватает?

<?php //open connection to mysql db $connection = mysqli_connect("localhost","root","","maps") or die("Error " . mysqli_error($connection)); //fetch table rows from mysql db $sql = "select * from locations"; $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection)); //create an array $emparray[] = array(); while($row =mysqli_fetch_assoc($result)) { $emparray[] = $row; } echo json_encode($emparray); //close the db connection mysqli_close($connection); ?> 

Solutions Collecting From Web of "json_encode не возвращает ничего"

попробуй это

 while ( $row = $result->fetch_assoc() ){ $emparray[] = json_encode($row); } echo json_encode( $emparray ); 

или

 while($row =mysqli_fetch_assoc($result)) { $emparray[] = json_encode($row); } echo json_encode($emparray); 

или

 $emparray = $result->fetch_all( MYSQLI_ASSOC ); echo json_encode( $emparray ); 

вместо

  while($row =mysqli_fetch_assoc($result)) { $emparray[] = $row; } echo json_encode($emparray); 

Я знаю, что это старо, но я не нашел объяснения этой ошибки. В моем случае проблема заключалась в том, чтобы считывать значения в БД с акцентом (Ej: cafetería). var_dump ($ emparray) certanly показывает информацию, но echo json_ecode ($ emparray) ничего не показывает. Решение?

Это моя связь с БД:

$connection = mysqli_connect('ip,'user','pass','dbname') or die("Error " . mysqli_error($connection));

Нужно только добавить правильную кодировку:

mysqli_set_charset( $connection, 'utf8');

Выполняет эту работу для других.

У меня была аналогичная проблема, но когда я попробовал решения выше, он вернул мне 1-мерный массив JSON-подобных строк вместо 2-мерного массива. Я решил это, запустив $.parseJSON (jQuery) для каждого элемента.