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<?php
  $name = 'name1';
  $age  = 25;
?>

La oss forberede forespørselen:

php<?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<?php
  $res->bindValue(1, $name, PDO::PARAM_INT);
  $res->bindValue(2, $age,  PDO::PARAM_STR);
?>

La oss utføre forespørselen:

php<?php
  $res->execute();
?>

La oss se på resultatet:

php<?php
  while ($row = $res->fetch()) {
    var_dump($row);
  }
?>
Задание 1

Følgende variabler er gitt:

php<?php
  $name1 = 'name1';
  $name2 = 'name2';
?>

Hent brukere hvor navnet samsvarer med verdien til en eller den andre variabelen.

Задание 2

Følgende variabler er gitt:

php<?php
  $age1 = 21;
  $age2 = 22;
?>

Hent brukere hvor alderen samsvarer med verdien til en eller den andre variabelen.