Con PDO MySQL l'API C sottostante
restituisce una struttura di stringhe quando si chiama mysql_fetch_row()
. Poiché PHP è un linguaggio vagamente tipizzato che esegue automaticamente il cast su intero se necessario, sospetto che gli sviluppatori PDO abbiano scelto di restituirlo così com'è. Questo sarebbe più veloce rispetto alla ricerca di ogni tipo di colonna e al cast dinamico su un intero / float.
In particolare per quanto riguarda float, un float PHP nativo può essere diverso dal valore memorizzato originale quando convertito da una stringa. Ad esempio, le colonne MySQL supportano una precisione mentre i float PHP no. Lasciare i float come stringa dal database ti consente un maggiore controllo (ad es. scegliendo di utilizzare una libreria con diversa precisione).