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

PDO ... SET NAMES utf8は危険ですか?

    本当にPHP>=バージョン3.6および<5.3.6を使用していますか?

    5.3.6以降を使用していると仮定します...

    文字セット および PDO_MYSQL DSN 使用する必要があると言う

    $pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8",
                   'my_user', 'my_pass');
    

    そして、(明らかに十分ではありませんが)utf8 utf8mb4に置き換える必要があります 必要に応じて。

    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' それほど良くはありませんが、5.3.6より前の代替手段でした。

    「危険」という言葉は、5.3.6より前でも強すぎると思います。

    関連する手法:init_command = SET NAMES ...を使用する my.cnf悪い init_command rootとして接続する場合は実行されません 。

    utf8mb4 推奨されるCHARACTER SET utf8から欠落していた絵文字といくつかの漢字が含まれているため、UTF-8の場合 。その文字セットは、MySQLバージョン5.5.3以降で使用できます。




    1. Postgres:コンポジットキーを実行する方法は?

    2. 全文検索を使用して、mysql内の不完全な単語を検索します

    3. Pythonvirtualenv内にdjango-toolkitをインストールしようとしたときにエラーが発生しました

    4. mysqlトリガーオペランドには2つの列が含まれている必要があります