Heim >Datenbank >MySQL-Tutorial >Warum wird mein MySQL-Ganzzahlfeld in PHP als String zurückgegeben?
MySQL-Ganzzahlfeld wird in PHP als String zurückgegeben
Dieses Problem tritt beim Abrufen von Daten aus einer MySQL-Datenbank mit PHP auf. Unabhängig vom in der Datenbank definierten Datentyp werden Daten in PHP standardmäßig immer als String zurückgegeben. Diese Diskrepanz kann rätselhaft sein, insbesondere wenn man erwartet, dass sich ein Integer-Feld so verhält.
In Ihrem speziellen Fall werden die Daten mit der als INT(11) deklarierten Datenbankfeld-Benutzer-ID mit der Abfrage abgerufen:
"SELECT userid FROM DB WHERE name='john'"
Um das Ergebnis zu verarbeiten, verwenden Sie:
$row=$result->fetch_assoc(); $id=$row['userid'];
Allerdings, wenn Sie den Datentyp von $id mit echo überprüfen gettype($id); gibt „string“ anstelle von „integer“ zurück.
Lösung
Um dieses Problem zu beheben, stellt PHP Methoden zum Konvertieren der abgerufenen Zeichenfolge bereit Daten zurück in ein Ganzzahlformat. Sie können den folgenden Code verwenden:
$id = (int) $row['userid'];
Alternativ können Sie auch die Funktion intval() verwenden:
$id = intval($row['userid']);
Durch die Durchführung dieser Konvertierung stellen Sie sicher, dass die Variable $id vorhanden ist korrekt als ganzzahliger Datentyp erkannt, was eine entsprechende Behandlung und Operationen als Ganzzahl ermöglicht.
Das obige ist der detaillierte Inhalt vonWarum wird mein MySQL-Ganzzahlfeld in PHP als String zurückgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!