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

php読み取りmysqlビットフィールドが奇妙な文字を返す

    MySQLは、ビットフィールドに対して文字通り0x00と0x01を返します。それらをPHP側の適切なものに変換する必要があります

    $bitvalue = ($bitvalue == 0x01) ? 'TRUE' : 'FALSE'
    

    またはクエリ内:

    SELECT CAST(bitfield AS unsigned int)
    FROM ...
    

    これはそれをintに変換し、「0」および「1」(0x48および0x49)として返します。

    余談ですが、古いmysqlライブラリの一部は、MySQLの実際のビットフィールドのサポートよりも前のものであり(サイレントにchar(1)に変換された場合)、値を破棄するため、これらの恐竜の1つで立ち往生している場合バージョンでは、PHP側の変換ではなくクエリバージョンを使用する必要がある場合があります。



    1. 正規化と複製を理解する-私はそうは思わない-アーティストとタイトルIDを追加する

    2. STUFF()を使用してSQLServerの別の文字列に文字列を挿入する方法

    3. 2番目のフィールドの自動インクリメントを使用した2つのフィールドのSQLServer固有の複合キー

    4. 警告:mysql_query():3は有効なMySQL-Linkリソースではありません