$PDO->query('SET NAMES utf8;');
Unicode に準拠するために、接続ライブラリ コードに導入しました。これは一部のホストで機能し、.execute()
.
ただし、一部のホスティング プランでは、次のエラーが発生します。
一般エラー: 2014 他のバッファリングされていないクエリがアクティブな間は、クエリを実行できません。PDOStatement::fetchAll() の使用を検討してください。または、コードが mysql に対してのみ実行される場合は、PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 属性を設定して、クエリのバッファリングを有効にすることができます。
そのため、SET NAMES の前に を導入$PDO->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, TRUE);
しましたが、まだエラーが発生しています。次に、その値を FALSE に設定しましたが、まだエラーが発生しています。
もちろん、"SET NAMES utf8"
ステートメントを削除すると、問題はなくなります。繰り返しになりますが、この問題は一部の Web ホストでのみ発生します。
ほとんどの Linux ホスティング プランで動作する MySQL を Unicode に切り替える適切な方法は何ですか?