Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Odwracanie efektu `mysqli_real_escape_string`

Odpowiedź monkeymatrix jest nieprawidłowa dla ostatnich wersji PHP (testowałem ją na 7.3). mysqli_real_escape_string() wymyka się tylko niektórym znakom. Oto funkcja, która to odwróci:

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

W poprawnie napisanej aplikacji ta funkcja rzadko powinna być potrzebna. Powinieneś używać PDO z wiązaniem parametrów, aby automatycznie obsługiwać wszelkie znaki ucieczki. Stworzyłem tę funkcję tylko do obsługi starszego kodu, który unikał wszystkiego na wejściu i potrzebowałem sposobu na powrót do oryginalnych danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wiele stanów końcowych zapytań w MySQL, wszystkie połączenia używane w ciągu kilku minut

  2. Sumuj wiersze z różnych warunków w Mysql

  3. Jak przenieść kolumny w tabeli MySQL?

  4. Porównaj tylko dzień i miesiąc z polem daty w mysql

  5. Jak sprawdzić, czy wartość już istnieje, aby uniknąć duplikatów?