Legarea pozițională a variabilelor în PDO în PHP
Puteți lega variabilele la interogare una câte una.
Acest lucru se face folosind metoda bindValue.
Apoi interogarea rezultată este executată, dar
în acest caz în execute nu este transmis nimic.
Această legare vă permite să specificați cu exactitate tipul variabilei, anulând împachetarea automată în ghilimele pentru valorile numerice. Să vedem cum se face acest lucru. Să presupunem că avem două variabile, una de tip string și una numerică:
<?php
$name = 'name1';
$age = 25;
?>
Să pregătim interogarea:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Acum să legăm variabilele la interogare cu
ajutorul metodei bindValue.
În primul parametru al metodei se specifică
numărul poziției în interogare, în al doilea
parametru - numele variabilei,
iar în al treilea se specifică tipul variabilei (numeric
sau string):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Să executăm interogarea:
<?php
$res->execute();
?>
Să ne uităm la rezultat:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Sunt date variabilele:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Obțineți utilizatorii al căror nume coincide cu valoarea primei sau a celei de-a doua variabile.
Sunt date variabilele:
<?php
$age1 = 21;
$age2 = 22;
?>
Obțineți utilizatorii a căror vârstă coincide cu valoarea primei sau a celei de-a doua variabile.