Benim php kodu şöyle verir:PHP, ancak json_encode boş
$header = "Content-Type: application/json";
header($header);
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * ...";
$result = $conn->query($sql);
$array_1 = array();
if ($result->num_rows > 0) {
// output data as array
while($row = $result->fetch_assoc()) {
array_push($array_1, $row);
}
}
$conn->close();
print_r($array_1);
bana şu çıktıya verir hangisi:
Array
(
[0] => Array
(
[user_email] => [email protected]
[order_item_name] => Abonnement
)
[1] => Array
(
[user_email] => [email protected]
[order_item_name] => Verlängerung
)
)
Bu çıkış e-posta ile bir sorgunun sonucudur, ürünün adını iade etmek için. Bu durumda, print_r
'u echo json_encode
ile değiştirirsem hiçbir şey görüntülenmez. Bu bana sorun sonuç boş olmadığından emin verilen karakter seti ile ilgisi var olduğuna inanıyoruz yapar, bu yüzden ekledi: Hala
$header = "Content-Type: application/json; charset=utf-8";
header($header);
şans yok. Bunun benim sorgudan e-postayı değiştirmek eğer print_r
kullanarak yukarıdaki ve echo json_encode
mükemmel iyi kullanarak json olarak sonucu görüntüler, ancak, json * işlevleri devre dışıdır durum olabileceğini okuma. Bu sonuçtan, sorunun kökü veya benzer bir senaryonun olması gerekir. Sonuçtan ä karakterinden dolayı olabilir mi? Bu yüzden başlıkta utf-8 ekledim.
Ben çalıştığını e-posta değiştirmek, ama "[email protected]" kullandığınızda yerine 2 sadece 1 sonuçları göstermektedir eğer, yukarıda belirttiğimiz gibi. Sonuçların dizide doğru şekilde yerleştirilmemesi olabilir mi? print_r
'un sorgu sonucunu doğru şekilde biçimlendirmediğine inanıyorum.
Neler olup bittiğini bilen var mı?
bkz kullanarak
order_item_name
değerlerini kodlamak gerekecek ($ array_1) '? var_dump hata ayıklamak için her zaman daha yararlıdır;) –Deneme $ json_string = json_encode ($ dizi_1); var_dump ($ json_string); – Brian
İkisini de yapın, var_dump ($ dizi); daha sonra echo json_encode ($ dizi); Çalışmaması için bir sebep yok. Bir işlev mevcut değilse, varolmayan bir işlev kullandığınız bir uyarı/hata alırsınız. Error_reporting (E_ALL) kullanarak tüm uyarıları görüntülediğinizden emin olun; – Loenix