Vinculação Posicional de Variáveis no PDO em PHP

Você pode vincular variáveis à consulta uma por uma. Isso é feito usando o método bindValue. Em seguida, a consulta resultante é executada, mas neste caso, nada é passado para execute.

Essa vinculação permite especificar com precisão o tipo da variável, desativando o encapsulamento automático entre aspas para valores numéricos. Vamos ver como isso é feito. Suponha que temos duas variáveis, uma string e um número:

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

Vamos preparar a consulta:

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

Agora, vamos vincular as variáveis à consulta usando o método bindValue. No primeiro parâmetro do método, é especificado o número da posição na consulta, no segundo parâmetro - o nome da variável, e no terceiro, é indicado o tipo da variável (numérico ou string):

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

Vamos executar a consulta:

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

Vamos ver o resultado:

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

Dadas as variáveis:

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

Obtenha os usuários cujo nome corresponde ao valor de uma ou outra variável.

Задание 2

Dadas as variáveis:

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

Obtenha os usuários cuja idade corresponde ao valor de uma ou outra variável.