sql >> Databasteknik >  >> RDS >> Mysql

Omvända effekten av `mysqli_real_escape_string`

Monkeymatrix-svaret är felaktigt för de senaste versionerna av PHP (jag testade det på 7.3). mysqli_real_escape_string() undkommer bara vissa karaktärer. Här är en funktion som vänder på den:

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

I en korrekt skriven ansökan ska det sällan finnas behov av denna funktion. Du bör använda PDO med parameterbindning för att hantera eventuell escape automatiskt. Jag skapade bara den här funktionen för att hantera en del äldre kod som försvann allt vid inmatning och jag behövde ett sätt att återgå till originaldata.




  1. Att skapa en utlösare för infogning av underordnade tabeller returnerar ett förvirrande fel

  2. Tio tips för att gå in i produktion med PostgreSQL

  3. Hur man återställer en databas med Backup Manager

  4. Lägg snabbt till en kopia av en kolumn i en MySQL-tabell