Heim >Datenbank >MySQL-Tutorial >Wie rufe ich ganzzahlige und numerische Spalten als ihre nativen Typen von MySQL in PHP ab?
Wie gebe ich ganzzahlige und numerische Spalten von MySQL als ganze Zahlen und Zahlen in PHP zurück?
Stellen Sie bei der Arbeit mit MySQL-Datenbanken in PHP Folgendes sicher Es ist von entscheidender Bedeutung, dass ganzzahlige und numerische Spalten korrekt abgerufen und dargestellt werden. Die PDO-Erweiterung in PHP bietet eine Möglichkeit, dies zu tun, aber es kann problematisch sein, wenn der native MySQL-Treiber nicht verwendet wird.
Warum Integer-Spalten als Strings zurückgegeben werden
Dem nativen MySQL-Treiber fehlt die Unterstützung für die Rückgabe numerischer Werte als Ganzzahlen und Zahlen. Dies bedeutet, dass standardmäßig alle Spalten als Zeichenfolgen abgerufen werden. Selbst wenn das PDO-Flag PDO::ATTR_STRINGIFY_FETCHES auf false gesetzt ist, ändert sich das Verhalten des Treibers nicht.
So beheben Sie das Problem
Die Lösung besteht darin, zum mysqlnd Treiber für PHP. Dieser Treiber unterstützt die Rückgabe ganzzahliger und numerischer Werte in ihren nativen PHP-Typen.
Installation
Um den mysqlnd-Treiber unter Ubuntu zu installieren, können Sie die folgenden Schritte ausführen:
Überprüfung
Um zu überprüfen, ob der mysqlnd-Treiber verwendet wird, führen Sie Folgendes aus: php -i. Die Ausgabe sollte nun „mysqlnd“ im Abschnitt pdo_mysql enthalten.
PDO-Einstellungen
Stellen Sie sicher, dass die folgenden PDO-Einstellungen korrekt eingestellt sind:
Zurückgegebene Werte
Mit dem mysqlnd-Treiber werden die folgenden Rückgabetypen verwendet:
Beispiel
Nach dem Wechsel zum mysqlnd-Treiber können Sie ganzzahlige und numerische Werte korrekt abrufen:
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false); $result = $pdo->query('SELECT * FROM table'); $row = $result->fetch(PDO::FETCH_OBJ); echo $row->integer_col; // 1 (int) echo $row->double_col; // 1.55 (float) echo $row->decimal_col; // '1.20' (string) echo $row->bigint_col; // '18446744073709551615' (string)
Das obige ist der detaillierte Inhalt vonWie rufe ich ganzzahlige und numerische Spalten als ihre nativen Typen von MySQL in PHP ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!