non credo ottenere i dati in loro tipi di dato nativi (vale a dire qualsiasi altra cosa che le stringhe) può essere fatto in PHP 5.2 ...
In PHP 5.3, diventa possibile, se non ricordo male, quando si utilizza il nuovo (nuovo come in PHP> = 5.3) mysqlnd (driver Native Native) driver.
Dopo più scavare attraverso i miei preferiti Ho trovato questo articolo su mysqlnd: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
Si dice questo (citazione):
I vantaggi dell'utilizzo di mysqlnd per i prodotti DOP
mysqlnd torna nativo tipi di dati quando utilizza le istruzioni preparate lato server, per esempio viene restituita una colonna INT come variabile intera e non come una stringa . Ciò significa un minor numero di conversioni di dati internamente.
Ma questo è solo PHP 5.3 (fornito la propria versione di PHP 5.3 è compilato con mysqlnd (e non il vecchio libmysql)), e sembra essere solo il caso di dichiarazioni preparate :-(
il che non aiuta molto, nella tua situazione, immagino ...
Ed ecco un altro, ancora sulle nuove funzionalità di mysqlnd, che parla di questo non solo per le istruzioni preparate:. PHP: New network traffic, CPU and memory savings with mysqlnd
012.
Non è sicuro che questo sia stato unito al driver mysqlnd ufficiale, tuttavia, il modo migliore sarebbe provarlo; ma sarà ancora PHP> = 5.3 solo, in ogni caso ...
Un'altra soluzione sarebbe quella di avere, sul PHP-side, una sorta di mappatura sistema (come un ORM) a convertire i risultati provenienti dal DB di tipi di dato PHP ...
e sì, questo è male se si desidera utilizzare gli operatori come ===
e !==
, che sono di tipo sensibile ...
Grazie Pascal MARTIN! Sono stato su Google per diverse ore e non ho trovato nulla che potrei usare. Sono relativamente nuovo a PHP, ma sembra che avrò bisogno di andare con PDO se voglio il supporto nativo. Sfortunatamente il mio host è in esecuzione 5.2.qualcosa ... Anche difficile, è che sto cercando di creare un input di file di report xml che contiene informazioni di query diverse. Lo script PHP legge il file xml richiesto e invia le query al database, quindi davvero non saprò mai quali dati vengono interrogati e come dovrebbe essere restituito. tempo per essere creativo suppongo :) –
PDO o non PDO non dovrebbe cambiare nulla, in questo caso: ciò che importa sono i driver utilizzati sotto * (ad esempio libmysql vs mysqlnd) * - e non sono nemmeno sicuro che mysqlnd in PHP 5.3.2 restituisce i tipi nativi per le query standard ;;; nel tuo caso, comunque, con PHP 5.2, l'unica soluzione che avresti sarebbe un livello di mappatura, che digita le conversioni quando necessario ... –
Nota che dovrai [disattivare l'emulazione di istruzione preparata] (http://stackoverflow.com/a/15592818/441684) se si utilizza PDO. –