sql >> Databáze >  >> RDS >> Mysql

Obrácení efektu `mysqli_real_escape_string`

Odpověď monkeymatrix je nesprávná pro nejnovější verze PHP (testoval jsem ji na 7.3). mysqli_real_escape_string() uniká pouze některým postavám. Zde je funkce, která to obrátí:

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

Ve správně napsané žádosti by tato funkce měla být zřídkakdy potřeba. Měli byste používat PDO s vazbou parametrů pro automatické zpracování jakéhokoli escapování. Tuto funkci jsem vytvořil pouze pro práci s nějakým starším kódem, který unikal všemu na vstupu, a potřeboval jsem způsob, jak se vrátit k původním datům.




  1. Chyba při instalaci mysql2:Nepodařilo se sestavit nativní rozšíření drahokamů

  2. Jak funguje SQLite Rtrim()

  3. Jak porovnat verze softwaru pomocí SQL Server?

  4. Bash:Jak vyvolat příkaz a uložit výsledek do proměnné?