Positionsbindning av variabler i PDO i PHP

Man kan binda variabler till frågan en efter en. Detta görs med metoden bindValue. Sedan exekveras den resulterande frågan, men i det här fallet skickas inget in i execute.

Denna bindning gör det möjligt att exakt specificera typen av variabel, vilket tar bort automatisk inneslutning i citattecken för numeriska värden. Låt oss se hur det går till. Låt oss säga att vi har två variabler, en sträng och en numerisk:

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

Låt oss förbereda frågan:

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

Nu binder vi variablerna till frågan med hjälp av metoden bindValue. I den första parametern för metoden anges positionsnumret i frågan, i den andra parametern - variabelns namn, och i den tredje anges variabelns typ (numerisk eller sträng):

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

Låt oss exekvera frågan:

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

Låt oss titta på resultatet:

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

Följande variabler är givna:

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

Hämta användare vars namn matchar värdet på den ena eller den andra variabeln.

Задание 2

Följande variabler är givna:

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

Hämta användare vars ålder matchar värdet på den ena eller den andra variabeln.