sql >> Database >  >> RDS >> Mysql

Worden PDO-statements automatisch escaped?

Alleen voorbereide verklaringen bieden automagische ontsnapping, ervan uitgaande dat je geen lelijkheid zoals magische aanhalingstekens hebt ingeschakeld. En alleen de gegevens in de params worden ontsnapt, niet iets dat al in de SQL-tekenreeks staat wanneer u de instructie voorbereidt.

Als u de voordelen van automatisch ontsnappen wilt, moet u een verklaring opstellen en deze afzonderlijk invoeren.

$sth = $dbh->prepare("SELECT * FROM users WHERE username=? AND password=?");
$sth->execute(array($username, $password));

Anders krijgt u weinig tot geen bescherming over mysqli_query en vrienden. (Ik weiger het zelfs maar te vermelden mysql_query , omdat geen enkele zichzelf respecterende PHP-programmeur het meer gebruikt. Oh, wacht..verdomme. Nou, dat is de enige vermelding die het hier krijgt.)



  1. Toon drop-down waarden van een select op basis van een andere select

  2. verleen externe toegang tot de MySQL-database vanaf elk IP-adres

  3. Tel gegevens uit meerdere tabellen met SUM

  4. Aliaskolom gebruiken in WHERE-instructie