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

PDO接続文字列の特殊文字をエスケープするにはどうすればよいですか?

    なんらかの奇妙な理由でこれを行う必要がある場合は、dbnameを使用しないでください DNSのパラメータ。代わりに、データベースドライバを使用して選択してください:

    $dbh->query('use "newdatabase"'); // for mysql.
    

    このように、データベース名を"で囲むオプションがあります。 、したがって、ドライバーに関係なく名前を付けることができます 許可 。この特定のシナリオのMySQLの場合、それは"です。 文字ですが、PostgreSQLとFirebaseで違いがあるわけではありません。

    ただし、この方法は防弾ではありません。PDOライブラリがDSNを通常どおりに解析できるようにするだけです。期待しない PDOライブラリは、この異常な状況に対処するためのものです。その唯一の目的は、できるだけ多くのドライバーと対話することです。

    ドライバー固有の許容値はPDOに参加しないようにする必要があるため、実際にドライバーにこれを依頼する必要があります。これにより、クエリの実行に失敗したかどうかを確認することもできます。



    1. 列タイプを変更し、null以外に設定します

    2. 複数の列にわたるmysqlテーブルの重複をチェックする方法

    3. MySQLで名前utf8を設定しますか?

    4. MariaDBでテーブルの文字セットと照合を設定する