Con una novità relativa a AJAX, e ora appena iniziando a imparare PDO, il livello aggiunto di ReSTler mi ha completamente spiazzato. Modellando il codice riportato di seguito dai campioni di Restler, non so come modificare il formato di output da quello che PDO è tornando a ciò che si aspettano Restler e Highcharts.Come formattare correttamente i risultati PDO? - risultati numerici restituiti come stringa?
Come si modifica questo codice per passare dal formato corrente al formato richiesto? (I risultati saranno generalmente record 5K-10K, se questo è un fattore nella gestione del risultato MySQL.)
ReSTler Codice API Snippet:
$sql = "SELECT ....."
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$stmt = $this->db->query($sql);
return $stmt->fetchAll();
} catch (PDOException $e) {
throw new RestException(502, 'Listing History: ' . $e->getMessage());
}
Corrente Formato di uscita (comprende indesiderato i nomi di colonna):
[
{
"chart_date": "1118966400000",
"bandwidth": "10.01",
"views": "101"
},
{
"chart_date": "1119225600000",
"bandwidth": "20.02",
"views": "101"
},
desiderata Output Format (numerici e senza nomi di colonna):
[
[
1118966400000,
10.01,
101
],
[
1119225600000,
20.02,
202
],
Modifica utilizzando suggeritofetch(PDO::FETCH_NUM)
:
Per la risposta da @Ricardo Lohmann, ho provato a prendere (DOP :: FETCH_NUM), che ha fatto rimuovere la colonna i nomi, ma tutte le colonne restituite sembrano essere una stringa, non numerica, poiché i dati sono effettivamente, quindi prova questo, dandomi il giusto tipo di dati - questa parte di PDO restituisce unilateralmente una stringa?
while ($row = $stmt->fetch(PDO::FETCH_NUM)) {
$array[$x][0] = intval($row[0]);
$array[$x][1] = intval($row[1]);
$array[$x][2] = intval($row[2]);
$x++;
}
return $array;
Ah, per avere PHP 5.3 a mia disposizione, ahimè, I' m bloccato con 5,2 per la durata, ma GRAZIE per almeno chiarire la "stringa" ... stava diventando livido mentre mi stavo picchiando cercando ogni^&^* ((possibile impostazione !!! – GDP