Abrufen numerischer Datentypen aus MySQL mithilfe von PDO
Bei der Verwendung von PDO und MySQL kann es vorkommen, dass numerische Werte aus der Datenbank abgerufen werden werden als Zeichenfolgen statt als numerische Datentypen zurückgegeben. Diese Ungleichheit kann aufgrund des Standardverhaltens der PHP Database Objects (PDO)-Erweiterung entstehen.
Warum Strings anstelle von Zahlen?
Leider kommt es relativ häufig vor Beim Abfragen einer Datenbank werden Zeichenfolgen anstelle von Zahlen empfangen. Dies liegt daran, dass die PDO-Erweiterung normalerweise numerische Werte aus der Datenbank in Zeichenfolgen konvertiert, um die Kompatibilität mit allen unterstützten Datenbanktreibern sicherzustellen.
Stringkonvertierung deaktivieren
Um zu verhindern, dass PDO Zeichenfolgen erstellt Bei numerischen Werten können Sie das PDO-Attribut PDO::ATTR_EMULATE_PREPARES ändern. Indem Sie dieses Attribut auf „false“ setzen, können Sie die Emulation vorbereiteter Anweisungen deaktivieren und MySQL erlauben, native Datentypen, einschließlich numerischer Typen, zurückzugeben.
$dsn = 'mysql:dbname=database;host=localhost'; $pdo = new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ));
PDO::ATTR_STRINGIFY_FETCHES
Das Attribut PDO::ATTR_STRINGIFY_FETCHES gilt nicht für den MySQL PDO-Treiber. Dieses Attribut ist für andere Datenbanktreiber gedacht, die die Rückgabe von Zeichenfolgen anstelle nativer Datentypen unterstützen.
Daher können Sie durch Deaktivieren der vorbereiteten Anweisungsemulation von PDO sicherstellen, dass numerische Werte als native Datentypen zurückgegeben werden, was eine Stringifizierung verhindert und ermöglicht Ihnen dabei, mit den Daten korrekt zu arbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich numerische Datentypen aus MySQL mithilfe von PDO ohne String-Konvertierung abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!