Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como usar o query()?

Na atividade Valor vs Referência, no capitulo 3, o exemplo faz o prepare(), passa o valor, mas chama a função execute(), que não retorna todos estudantes e sim a quantidade. Mas suponhamos que eu tenho uma consulta que tenha where, mas retorna vários registros, como eu poderia fazer usando a função query()?.

3 respostas
solução!

Tiago, você vai fazer exatamente como fizemos na aula 2. Vai chamar os métodos fetch ou fetchAll do objeto do tipo PDOStatement. :-)

Fiz assim:

$stmt = $pdo->prepare('SELECT * FROM students WHERE nome = :name;');
$nome = 'Tiago zay';
$stmt->bindParam(':name', $nome);
var_dump($stmt->fetchAll());

Tenho o registro com o nome Tiago zay cadastrado, a coluna da minha tabela é nome mesmo, mas oque eu tenho de retorno é um array vazio!

array(0) {
}

Depois de um tempinho batendo a cabeça aqui, descobri que quando eu quiser usar o fetch() ou fetchAll() eu devo usar o execute primeiro ksksksks, mas obrigado pela atenção Vinicius.

$stmt = $pdo->prepare('SELECT * FROM students WHERE nome = :nome');
$nome = 'Tiago zay';
$stmt->bindValue(":nome", $nome);
$stmt->execute();
var_dump($stmt->fetch(PDO::FETCH_ASSOC));