sql >> Database teknologi >  >> RDS >> Mysql

Reversering af effekten af ​​`mysqli_real_escape_string`

Monkeymatrix-svaret er forkert for nyere versioner af PHP (jeg testede det på 7.3). mysqli_real_escape_string() undslipper kun visse tegn. Her er en funktion, der vil vende den:

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

I en korrekt skrevet ansøgning skulle der sjældent være behov for denne funktion. Du bør bruge PDO med parameterbinding for at håndtere enhver escape automatisk. Jeg oprettede kun denne funktion for at håndtere noget ældre kode, der undslap alt ved input, og jeg havde brug for en måde at vende tilbage til de originale data på.




  1. Hvordan opretter man en midlertidig tabel i SQL?

  2. stop med at indsætte data i databasen, når du opdaterer siden

  3. Er der et alvorligt præstationshit for at bruge udenlandske nøgler i SQL Server?

  4. Jeg kan ikke indstille flere billeder i gittervisning?