PHP. Json содержит значения NULL для данных в кириллице

Я пытаюсь получить данные в формате JSON. В базе данных таблица «employee» содержит данные кириллицей

<?php
$mysqli = new mysqli("localhost","user","password","db");
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM employee")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray);
}

$result->close();
$mysqli->close();
?>

Результат содержит NULL вместо значений в кириллице.

[
{
id: "1",
lastname: null,
firstname: null,
middle: null,
occupation: null,
dob: "1991-01-01",
mobile: "+99999 9999999",
home: "+77777 7777777",
email: "testmail@mail.ru"}
]

Вывод myArray:

а: 2: {я: 0; O: 8: «StdClass»: 9: {s: 2: «ID»; s: 1: «1»; s: 8: «Lastname»; s: 7: «Азизов «; s: 9:» Firstname «; s: 6:» Азиз «; s: 6:» средние «; s: 14:» Азизович «; s: 10:» оккупация «; s: 19:» Android
разработчик «; s: 3:» DOB «; s: 10:» 1991-01-01 «; s: 6:» мобильный «; s: 13:» + 99999999999 «; s: 4:» дом «; s: 13: «+ 777777777777»; s: 5: «электронная почта»; s: 22: «testmail@mail.ru»;}}

Как решить эту проблему?

1

Решение

Я только что добавил $mysqli->set_charset("utf8");Эта строка кода кодирует данные в формате UTF-8. Почему это не работает? Потому что json_encode нужны данные в UTF-8

<?php
$mysqli = new mysqli("localhost","user","password","db");
$mysqli->set_charset("utf8");
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM employee")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}

echo json_encode($myArray);
//echo serialize($myArray);
}

$result->close();
$mysqli->close();
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector