sql >> Database >  >> RDS >> Mysql

Veilig alternatief voor mysql_real_escape_string? (PHP)

  • Het is een slecht idee om elke keer verbinding te maken als je deze functie aanroept. Een goed geplande toepassing zou niet zo'n vreemde beperking hebben.
  • je kunt vervangingen gebruiken, zoals deze
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • U kunt een andere manier van vervanging gebruiken, een moderne:voorbereide verklaringen. het zal in tal van andere antwoorden worden beschreven.

aangezien niemand het nog heeft gepost, hier is een ruw voorbeeld

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);
  • Zolang je single-byte-codering of utf-8 gebruikt, hoef je mysql_real_escape_string niet te gebruiken, dus mysql_escape_string (verouderd) of het toevoegen van wimpers zou voldoende zijn


  1. Verwijzing naar buitenste query in subquery JOIN

  2. Hoe u kunt bijhouden wat de gebruikers doen?

  3. DBMS_JOB versus DBMS_SCHEDULER

  4. utf8mb4-instelling voor talent - werkt niet