У меня есть запрос mysqli, который я должен отформатировать как JSON для мобильного приложения.
Мне удалось произвести XML-документ для результатов запроса, однако я ищу что-то более легкое. (См. ниже для моего текущего кода XML),
$mysql = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME) or die('There was a problem connecting to the database');
$stmt = $mysql->prepare('SELECT DISTINCT title FROM sections ORDER BY title ASC');
$stmt->execute();
$stmt->bind_result($title);
// create xml format
$doc = new DomDocument('1.0');
// create root node
$root = $doc->createElement('xml');
$root = $doc->appendChild($root);
// add node for each row
while($row = $stmt->fetch()) :
$occ = $doc->createElement('data');
$occ = $root->appendChild($occ);
$child = $doc->createElement('section');
$child = $occ->appendChild($child);
$value = $doc->createTextNode($title);
$value = $child->appendChild($value);
endwhile;
$xml_string = $doc->saveXML();
header('Content-Type: application/xml; charset=ISO-8859-1');
// output xml jQuery ready
echo $xml_string;
Вот как я сделал мой JSON канал:
$mysqli = new mysqli('localhost','user','password','myDatabaseName');
$myArray = array();
if ($result = $mysqli->query("SELECT * FROM phase1")) {
$tempArray = array();
while($row = $result->fetch_object()) {
$tempArray = $row;
array_push($myArray, $tempArray);
}
echo json_encode($myArray);
}
$result->close();
$mysqli->close();
В JSON есть одна важная вещь: данные должны быть в кодировке UTF-8. Поэтому для соединения с базой данных должна быть установлена правильная кодировка.
Остальное так же глупо, как и любая другая операция с базой данных
$mysql = new mysqli(DB_SERVER,DB_USER,DB_PASSWORD,DB_NAME);
$mysql->set_charset('utf8mb4');
$sql = 'SELECT DISTINCT title FROM sections ORDER BY title ASC';
$data = $mysql->query(sql)->fetch_all(MYSQLI_ASSOC);
echo json_encode($data);