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
$name = 'name1';
$age = 25;
?>
Vamos preparar a consulta:
<?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
$res->bindValue(1, $name, PDO::PARAM_INT);
$res->bindValue(2, $age, PDO::PARAM_STR);
?>
Vamos executar a consulta:
<?php
$res->execute();
?>
Vamos ver o resultado:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
Dadas as variáveis:
<?php
$name1 = 'name1';
$name2 = 'name2';
?>
Obtenha os usuários cujo nome corresponde ao valor de uma ou outra variável.
Dadas as variáveis:
<?php
$age1 = 21;
$age2 = 22;
?>
Obtenha os usuários cuja idade corresponde ao valor de uma ou outra variável.