Problem:
Abfrageergebnisse geben alle Spalten als Zeichenfolgentypen zurück , obwohl in der ganzzahlige und numerische Spalten definiert sind Datenbank.
Kompliziertheit:
Die Herausforderung ergibt sich aus Einschränkungen bei der Treiberimplementierung. Einige Treiber unterstützen die Rückgabe numerischer Typen als PHP-Ganzzahlen oder -Zahlen nicht, was zu einer Diskrepanz zwischen dem Datentyp der Datenbank und der PHP-Darstellung führt.
Lösung:
Der Schlüssel zur Lösung dieses Problems Das Problem besteht darin, sicherzustellen, dass der mysqlnd-Treiber für PHP verwendet wird. mysqlnd ist ein nativer MySQL-Treiber, der die notwendige Unterstützung für die korrekte Rückgabe numerischer Typen bietet.
So installieren Sie mysqlnd:
Für Ubuntu-Systeme:
Überprüfen, ob mysqlnd verwendet wird:
Führen Sie nach der Installation php aus -i, um zu überprüfen, ob mysqlnd verwendet wird. Suchen Sie in der Ausgabe nach der folgenden Zeile:
PDO Driver for MySQL => enabled Client API version => mysqlnd 5.0.10 - 20111026 -
Wesentliche PDO-Einstellungen:
Um die ordnungsgemäße Verarbeitung numerischer Werte sicherzustellen, sind zwei PDO-Einstellungen von entscheidender Bedeutung:
Nach dem Setzen dieser Flags erhalten Sie Ihre Abfrageergebnisse gibt nun wie erwartet ganzzahlige und numerische Spalten zurück. Hier ist ein Beispiel für die zurückgegebenen Werte:
object(stdClass)[915] public 'integer_col' => int 1 public 'double_col' => float 1.55 public 'float_col' => float 1.5 public 'decimal_col' => string '1.20' (length=4) public 'bigint_col' => string '18446744073709551615' (length=20)
Das obige ist der detaillierte Inhalt vonWie kann sichergestellt werden, dass numerische MySQL-Spalten als PHP-Ganzzahlen und -Zahlen zurückgegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!