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

Bezpieczna alternatywa dla mysql_real_escape_string? (PHP)

  • To okropny pomysł, aby łączyć się za każdym razem, gdy wywołujesz tę funkcję. Dobrze zaplanowana aplikacja nie miałaby tak dziwnych ograniczeń.
  • możesz użyć podstawień w ten sposób
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Możesz zastosować inny, nowoczesny sposób podstawienia:gotowe zestawienia. zostanie to opisane w wielu innych odpowiedziach.

ponieważ nikt jeszcze tego nie opublikował, oto przybliżony przykład

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);
  • Dopóki używasz kodowania jednobajtowego lub utf-8, nie musisz używać mysql_real_escape_string, więc mysql_escape_string (przestarzałe) lub wystarczy dodać ukośniki


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. zapytanie sql z instrukcją if

  2. Konwertowanie rozdzielanego ciągu na wiele wartości w mysql

  3. Czy mogę użyć tego samego ograniczenia klucza obcego w dwóch różnych tabelach?

  4. MySQL LIKE z zasięgiem nie działa

  5. MySQL - UPDATE zapytanie oparte na SELECT Query