Pozicijsko povezovanje spremenljivk v PDO v PHP
Spremenljivke lahko povezujemo z poizvedbo eno za drugo.
To naredimo z metodo bindValue.
Nato se pripravljena poizvedba izvede, vendar
v tem primeru v execute nič ne posredujemo.
Takšna povezava omogoča natančno določitev tipa spremenljivke, s čemer prekličemo samodejno dodajanje narekovajev za številske vrednosti. Poglejmo, kako se to naredi. Recimo, da imamo dve spremenljivki, niz in številko:
<?php
$name = 'name1';
$age = 25;
?>
Pripravimo poizvedbo:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Zdaj pa povežimo spremenljivke s poizvedbo z
uporabo metode bindValue.
V prvem parametru metode se določi
zaporedna številka mesta v poizvedbi, v drugem
parametru - ime spremenljivke,
v tretjem pa tip spremenljivke (številski
ali niz):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Izvedemo poizvedbo:
<?php
$res->execute();
?>
Poglejmo rezultat:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Podane spremenljivke:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Pridobite uporabnike, katerih ime se ujema z vrednostjo prve ali druge spremenljivke.
Podane spremenljivke:
<?php
$age1 = 21;
$age2 = 22;
?>
Pridobite uporabnike, katerih starost se ujema z vrednostjo prve ali druge spremenljivke.