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

`mysqli_real_escape_string`の効果を元に戻す

    モンキーマトリックスの答えは、最近のバージョンのPHPでは正しくありません(7.3でテストしました)。 mysqli_real_escape_string() 特定の文字のみをエスケープします。これを元に戻す関数は次のとおりです。

    function reverse_mysqli_real_escape_string($str) {
        return strtr($str, [
            '\0'   => "\x00",
            '\n'   => "\n",
            '\r'   => "\r",
            '\\\\' => "\\",
            "\'"   => "'",
            '\"'   => '"',
            '\Z' => "\x1a"
        ]);
     }
    

    適切に作成されたアプリケーションでは、この関数が必要になることはめったにありません。エスケープを自動的に処理するには、パラメータバインディングでPDOを使用する必要があります。この関数は、入力時にすべてをエスケープしていたレガシーコードを処理するためにのみ作成したものであり、元のデータに戻す方法が必要でした。




    1. 動的選択オプションphpおよびmysql

    2. ファイルから読み取った値をOracleのSQLクエリへの入力として渡します

    3. Androidのsqliteデータベースに大量のデータを挿入する方法

    4. MySQLの頻度からパーセンタイルを計算する