Positionel binding af variabler i PDO i PHP

Man kan binde variabler til forespørgslen én ad gangen. Dette gøres ved hjælp af metoden bindValue. Derefter udføres den resulterende forespørgsel, men i dette tilfælde overføres intet til execute.

Sådan binding giver mulighed for at præcist angive typen af variablen, hvilket ophæver automatisk indpakning i anførselstegn for numeriske værdier. Lad os se, hvordan det gøres. Lad os sige, at vi har to variable, en streng og en numerisk:

php<?php
  $name = 'name1';
  $age  = 25;
?>

Lad os forberede forespørgslen:

php<?php
  $sql = 'SELECT * FROM users WHERE name=? or age=?';
  $res = $pdo->prepare($sql);
?>

Nu binder vi variablerne til forespørgslen med hjælp af metoden bindValue. I den første parameter for metoden angives positionsnummeret i forespørgslen, i den anden parameter - variabelnavnet, og i den tredje angives variabeltypen (numerisk eller streng):

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

Lad os udføre forespørgslen:

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

Lad os se på resultatet:

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

Følgende variable er givet:

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

Hent de brugere, hvis navn matcher værdien af den ene eller den anden variabel.

Задание 2

Følgende variable er givet:

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

Hent de brugere, hvis alder matcher værdien af den ene eller den anden variabel.