現在のプロジェクトのデータベースにビットフィールド列を実装しています。長さは 50 ビットですが、PHP で作成したビットフィールドを正しく挿入していないようです。これはリテラル クエリです (PHP と phpMyAdmin の両方で送信してみました)。
INSERT INTO features (title, category_id, bitnum)
VALUES ("a6", "0", b'00000000000000000000000000100000000000000000000000')
しかし、何らかの理由で phpMyAdmin と PHP が出力する値は次のとおりです。
00001100110011100000111000001101100011000000111000
ここで、SELECT クエリで BIN(bitnum) を使用して bitnum 列を選択すると、正しい値が出力されます。しかし、これを進める前に、実際にこれを正しく行っているかどうかを知る必要があります (後でフラグに対して列をチェックする必要があるため)。最初に挿入したビットフィールドの真ん中に 1 しかなく、0 と 1 の奇妙な混乱になり、今のところ意味がわかりません。
GoogleでもSOでも、この件に関するものは何も見つかりませんでした。私の理解では、BIT 列は最大 64 ビットをサポートしています。
前もって感謝します。