Ho il seguente codice PHP di prova abbastanza semplice che estrae i dati e li inserisce in testo formattato JSON.Ottenere dati da MySQL in JSON utilizzando PHP
ottengo il seguente errore ..
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 1979603 bytes) in /var/www/test.php on line 33
Dove linea 33 è la linea json_encode()
.
C'è un modo per rendere questo più efficiente? Lo PHP.ini
è già impostato su 32 M come massimo, quindi dimensionato rispetto allo standard 8M!
<?php
require('../../admin/db_login.php');
$db=mysql_connect($host, $username, $password) or die('Could not connect');
mysql_select_db($db_name, $db) or die('');
$result = mysql_query("SELECT * from listinfo") or die('Could not query');
$json = array();
if(mysql_num_rows($result)){
$row=mysql_fetch_assoc($result);
while($row=mysql_fetch_row($result)){
// cast results to specific data types
$test_data[]=$row;
}
$json['testData']=$test_data;
}
mysql_close($db);
echo json_encode($json);
?>
Mi piace! Molto bella! –
@Lee: non convenzionale, ma in questo modo non è necessario memorizzare ogni riga in un array per la codifica successiva. –
Sì, un buon approccio, anzi, corre anche più veloce in realtà! –