sql >> Databáze >  >> RDS >> Mysql

Bezpečná alternativa k mysql_real_escape_string? (PHP)

  • Je to hrozný nápad připojit se pokaždé, když voláte tuto funkci. Dobře naplánovaná aplikace by neměla taková zvláštní omezení.
  • můžete použít substituce, jako je tato
    myquery("SELECT * FROM table WHERE id = %s","My string");

  • Můžete použít jiný způsob substitucí, moderní:připravené příkazy. to bude popsáno v mnoha dalších odpovědích.

jak to ještě nikdo nezveřejnil, zde je hrubý příklad

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);
  • Pokud používáte jednobajtové kódování nebo utf-8, není třeba používat mysql_real_escape_string, takže mysql_escape_string (deprecated) nebo addlashes by stačil


  1. mysql:smyčka přes tabulky a změna tabulky přidání indexu

  2. Index GIN ve sloupci smallint[] není použit nebo operátor chyby není jedinečný

  3. Systémové databáze SQL Server – údržba MSDB

  4. Rychlý způsob generování zřetězených řetězců v Oracle