Outomatiese aanhalingstekens om plekhouers in PDO in PHP
Tegnies gesproke plaas PDO alle ingevoerde waardes in aanhalingstekens en beskou hulle as strings, selfs al is dit eintlik nommers. Dit word deur SQL-sintaksis toegelaat. Daarom is dit nie nodig om plekhouers in aanhalingstekens te plaas nie, as jou waarde 'n string is.
Laat ons na 'n voorbeeld kyk. Gestel ons het 'n string in 'n variabele gestoor:
<?php
$name = 'name1';
?>
In hierdie geval hoef 'n posisionele plekhouer nie in 'n string geplaas te word nie:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
'n Genoemde plekhouer hoef ook nie in 'n string geplaas te word nie:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
Die feit dat daar altyd strings in die navraag sal wees, kan soms tot probleme met SQL-sintaksis lei - in gevalle waar nommers volgens die sintaksis verpligtend is. In sulke gevalle kan 'n mens 'n alternatiewe metode vir die binding van parameters gebruik, wat ons in die volgende lesse sal bespreek.