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

Безопасна алтернатива на mysql_real_escape_string? (PHP)

  • Ужасна идея е да се свързвате всеки път, когато извиквате тази функция. Доброто планирано приложение не би имало такова странно ограничение.
  • можете да използвате замествания, като този
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Можете да използвате друг начин за замествания, модерен:подготвени изявления. ще бъде описано в много други отговори.

тъй като все още никой не го е публикувал, ето груб пример

function fetchAll(){
 $args = func_get_args();
 $query = array_shift($args);
 $stmt = $pdo->prepare($query);
 $stmt->execute($args);
 return $stmt->fetchAll();
}
$a=$db->fetchAll("SELECT * FROM users WHERE status=? LIMIT ?,?",$status,$start,$num);
  • Докато използвате еднобайтово кодиране или utf-8, няма нужда да използвате mysql_real_escape_string, така че mysql_escape_string (отхвърлено) или добавянето на наклонени черти биха били достатъчни


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Само един ключ от съставен първичен ключ като външен ключ

  2. Колоната се актуализира въз основа на съществуващи полета

  3. неуспешно изпълнение на оператор с php и mysql

  4. Много бавно изтриване на mysql база с подзаявка

  5. Ускоряват ли индексите повече от> сравнение в MySQL?