Mysql
 sql >> база данни >  >> RDS >> Mysql

Обръщане на ефекта на `mysqli_real_escape_string`

Отговорът на monkeymatrix е неправилен за последните версии на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. неуспешно търсене в пълен текст на mysql

  2. Как да експортирате низ Base64 във файл, от страна на сървъра, без да го записвате в уеб сървър, директно от PHP?

  3. Използване на SqlDataAdapter за вмъкване на ред

  4. Размерът на реда е твърде голяма грешка в заявката за създаване на таблица в mysql

  5. Намерете припокриващи се (дата/час) редове в една таблица