Heim >Datenbank >MySQL-Tutorial >Warum werden MySQL-Ganzzahlen in PDO als Zeichenfolgen zurückgegeben und wie kann ich sie als Zahlen abrufen?

Warum werden MySQL-Ganzzahlen in PDO als Zeichenfolgen zurückgegeben und wie kann ich sie als Zahlen abrufen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-24 02:32:17501Durchsuche

Why are MySQL integers returned as strings in PDO, and how can I retrieve them as numbers?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn