Heim >Datenbank >MySQL-Tutorial >Warum werden MySQL-Ganzzahlen in PDO als Zeichenfolgen zurückgegeben und wie kann ich sie als Zahlen abrufen?
Abrufen numerischer Typen aus MySQL mit PDO
Problem:
Beim Abrufen von Daten aus einem MySQL-Datenbanken, die PDO verwenden, werden ganzzahlige Werte als Zeichenfolgen anstelle ihres numerischen Typs zurückgegeben, selbst wenn das PDO-Klassenattribut vorhanden ist PDO::ATTR_STRINGIFY_FETCHES ist auf „false“ gesetzt.
Antwort:
Problem mit dem numerischen Typ verstehen:
Es kommt häufig bei Datenbanken vor um numerische Werte als Zeichenfolgen zurückzugeben. Dies liegt daran, dass einige Datenbanktreiber, wie z. B. der Standardtreiber von MySQL, alle Werte als Zeichenfolgen behandeln.
Stringifizierung verhindern:
Um zu verhindern, dass Werte als Zeichenfolgen zurückgegeben werden, muss die Es muss der native MySQL-Treiber (mysqlnd) verwendet werden. Dieser Treiber unterstützt das Abrufen nativer Datentypen, einschließlich numerischer Typen.
Mysqlnd konfigurieren:
Um mysqlnd zu verwenden, muss die folgende Einstellung zum PDO-Verbindungsoptionen-Array hinzugefügt werden:
array( PDO::ATTR_EMULATE_PREPARES => false )
Beispiel Code:
$dsn = 'mysql:host=localhost;dbname=my_db'; $user = 'root'; $pass = 'password'; $pdo = new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ));
Indem Sie PDO::ATTR_EMULATE_PREPARES auf „false“ setzen, wird die Emulation vorbereiteter Anweisungen deaktiviert, sodass mysqlnd numerische Werte als korrekte Datentypen abrufen kann.
Das obige ist der detaillierte Inhalt vonWarum werden MySQL-Ganzzahlen in PDO als Zeichenfolgen zurückgegeben und wie kann ich sie als Zahlen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!