Poziciono vezivanje promenljivih u PDO u PHP
Promenljive se mogu vezivati za upit jedna po jedna.
To se radi pomoću metode bindValue.
Zatim se dobijeni upit izvršava, ali
u ovom slučaju se u execute ništa ne prosleđuje.
Ovo vezivanje omogućava precizno određivanje tipa promenljive, poništavajući automatsko obavijanje u navodnike za numeričke vrednosti. Hajde da pogledamo kako se to radi. Neka postoje dve promenljive, tekstualna i numerička:
<?php
$name = 'name1';
$age = 25;
?>
Pripremimo upit:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Sada ćemo vezati promenljive za upit
pomoću metode bindValue.
U prvom parametru metode se navodi
pozicija (redni broj) u upitu, u drugom
parametru - ime promenljive,
a u trećem se navodi tip promenljive (numerički
ili tekstualni):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Izvršimo upit:
<?php
$res->execute();
?>
Pogledajmo rezultat:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Date su promenljive:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Preuzmite korisnike čije se ime poklapa sa vrednošću prve ili druge promenljive.
Date su promenljive:
<?php
$age1 = 21;
$age2 = 22;
?>
Preuzmite korisnike čije se godine poklapaju sa vrednošću prve ili druge promenljive.