Posisjonsbinding av variabler i PDO i PHP
Man kan binde variabler til forespørselen én etter én.
Dette gjøres ved hjelp av metoden bindValue.
Deretter utføres den resulterende forespørselen, men
i dette tilfellet sendes ingenting til execute.
Slik binding tillater oss å nøyaktig spesifisere typen av variabelen, og unngår automatisk innpakning i anførselstegn for numeriske verdier. La oss se hvordan dette gjøres. La oss si at vi har to variabler, en streng og en numerisk:
<?php
$name = 'name1';
$age = 25;
?>
La oss forberede forespørselen:
<?php
$sql = 'SELECT * FROM users WHERE name=? or age=?';
$res = $pdo->prepare($sql);
?>
Nå binder vi variablene til forespørselen med
hjelp av metoden bindValue.
I den første parameteren til metoden spesifiseres
posisjonsnummeret i forespørselen, i den andre
parameteren - variabelnavnet,
og i den tredje angis variabeltypen (numerisk
eller streng):
<?php
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
La oss utføre forespørselen:
<?php
$res->execute();
?>
La oss se på resultatet:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Følgende variabler er gitt:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Hent brukere hvor navnet samsvarer med verdien til en eller den andre variabelen.
Følgende variabler er gitt:
<?php
$age1 = 21;
$age2 = 22;
?>
Hent brukere hvor alderen samsvarer med verdien til en eller den andre variabelen.