sql >> データベース >  >> RDS >> Mysql

Zend Frameworkを使用してDBから整数をフェッチすると、値が文字列として返されます

    多くのZend_Dbを実装しました ZendFrameworkのコード。

    他の人が述べているように、Zend_Db ネイティブのPHP整数またはfloatの代わりに文字列を返すのは、PHPのデータベース拡張機能が文字列を返すことです。その理由は、特定のデータベースタイプを表すネイティブPHPタイプがない可能性があるためです。

    たとえば、MySQLのBIGINT 64ビットの符号付き整数です。デフォルトでは、PHPのint タイプは32ビット値に制限されているため、データベースからデータをフェッチし、それを暗黙的にintに変換する場合 、一部の値は切り捨てられる場合があります。 floatの場合、他にも同様のケースがいくつかあります。 と日付など。

    すべてのデータ型に文字列表現を使用することは、シンプルで一貫性を保ち、データ損失を回避し、データ型マッピングを行うためにベンダー固有の特殊なコードを大量に記述しないようにするための最良の方法です。その余分なコードもパフォーマンスの低下を招きます。

    したがって、データベースの結果をネイティブPHPデータ型にマッピングする必要がある特定のケースがある場合は、アプリケーションコード(カスタムZend_Db_Table_Rowなど)に自分で実装する必要があります。 クラス)。



    1. 2つの日付間の出力mysql

    2. LIMIT 1を使用すると、主キーのクエリが高速化されますか?

    3. java.lang.ClassNotFoundException:com.mysql.jdbc.Driver(maven + jboss)

    4. Laravelでこのデータ更新エラーを解決する方法