ホームページ >バックエンド開発 >PHPチュートリアル >MySQL の整数フィールドが PHP で文字列として取得されるのはなぜですか?
PHP で文字列として取得される MySQL 整数フィールド: 変換の解明
PHP を使用して MySQL データベースからデータをフェッチすると、次のような問題が発生する場合があります。整数フィールドが文字列として返されるという不可解な状況。この予期しない動作は、PHP のデータ処理の性質に起因します。
この現象を理解するには、次のシナリオを考慮してください。
// Query the database and retrieve the user's ID $result = $mysqli->query("SELECT userid FROM DB WHERE name='john'");
クエリがユーザーの ID (整数) を正常に取得したと仮定します。データベースでは、次のコードが取得した値を整数として保存すると予想されるかもしれません。 variable:
$row = $result->fetch_assoc(); $id = $row['userid'];
しかし、gettype($id) を使用して $id 変数のデータ型をチェックすると、「string」が返されることに驚くでしょう。
なぜこれが起こっているのですか?
問題の核心は、PHP が MySQL から取得したデータを処理する方法にあります。データベース。デフォルトでは、PHP はデータベース内の元のデータ型に関係なく、取得したすべてのデータを文字列に変換します。これにより、データの均一な処理が保証され、PHP アプリケーションの処理が容易になります。
問題の解決
文字列化された整数を元に変換するには、いくつかの方法を使用できます。目的の整数データ型に変換します:
$id = (int) $row['userid']; // Equivalent to intval($row['userid'])
$result = $mysqli->query("SELECT userid AS INT FROM DB WHERE name='john'");
これらのソリューションのいずれかをコードに組み込むことで、MySQL データベースから取得した整数フィールドが PHP アプリケーション内で整数として正しく処理されるようにすることができます。
以上がMySQL の整数フィールドが PHP で文字列として取得されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。