PHP-Abfragen geben häufig alle Spalten als Zeichenfolgen zurück, auch wenn es sich um Ganzzahlen handelt oder numerische Werte in MySQL. Dies kann problematisch werden, wenn Daten mit bestimmten Formatanforderungen verarbeitet werden, z. B. JSON-Ausgaben, die von mehreren Diensten genutzt werden.
Während einige Quellen behaupten, dass die Rückgabe numerischer Typen nicht möglich sei, ist dies der Fall nicht ganz wahr. Die folgenden Missverständnisse können zurückgewiesen werden:
Der Schlüssel zur Lösung dieses Problems ist die Verwendung des mysqlnd-Treibers für PHP. Im Gegensatz zum nativen Treiber unterstützt mysqlnd die Rückgabe numerischer Typen für Ganzzahlspalten (INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT) und Gleitkommaspalten mit doppelter Genauigkeit (DOUBLE).
Um zu überprüfen, ob Sie mysqlnd verwenden, führen Sie php -i aus. Wenn im Abschnitt „pdo_mysql“ „mysqlnd“ erwähnt wird, ist der Treiber vorhanden. Andernfalls befolgen Sie diese Schritte, um es zu installieren:
Ubuntu:
Anwesenheit bestätigen: Nach der Installation sollte php -i nun die mysqlnd-Version im Abschnitt pdo_mysql anzeigen.
Stellen Sie außerdem sicher, dass die folgenden PDO-Einstellungen festgelegt sind richtig:
Mit mysqlnd und Mit den richtigen PDO-Einstellungen können Sie jetzt MySQL-Tabellen abfragen und numerische Werte in der erwarteten Form erhalten Format:
$result = $pdo->query('SELECT * FROM table'); $row = $result->fetch(PDO::FETCH_OBJ); echo $row->integer_col; // 1 (integer) echo $row->double_col; // 1.55 (float) echo $row->decimal_col; // '1.20' (string)
Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass numerische und ganzzahlige MySQL-Spalten in PHP als korrekter Datentyp zurückgegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!