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

PHP / PDO / MySQL:MEDIUMBLOBに挿入すると不良データが保存されます

    これはバグではないと思います。クライアントがサーバーと通信し、次のコマンドがUTF-8であり、サーバーがLatin-1でそれを必要としていると言うときはいつでも、クエリは解析と実行の前に再エンコードされる可能性があると想像できます。したがって、これはデータ転送のエンコードの問題です。解析前のクエリ全体がこの再エンコードの影響を受けるため、BLOB列のバイナリデータも変更されます。

    Mysqlマニュアルから:

    または帰り道:クライアントがサーバーに輸送にUTF-8を使用するように指示したため、ストアからのLatin1データはUTF-8に変換されます。

    名前を付けるPDO自体の識別子は、まったく異なるもののように見えます:

    私はMySQLの専門家ではありませんが、このように説明します。クライアントとサーバーは、使用している文字セットをネゴシエートする必要があります。これには理由があると思います。




    1. 警告:mysqli_stmt ::bind_param():変数の数がプリペアドステートメントのパラメーターの数と一致しません

    2. MySQL-新しい列を追加しようとしたときに重複エントリエラーが発生しました

    3. クライアントとサーバー間の接続の構成Oracle10g

    4. 前の値と現在の値(配列)を使用してPHPチェックを使用してテーブルを作成します