PDO::query
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)
PDO::query — Prepara e executa uma instrução SQL sem marcadores
Descrição
$query
, ?int $fetchMode
= PDO::FETCH_COLUMN, int $colno
): PDOStatement|falsestring
$query
,?int
$fetchMode
= PDO::FETCH_CLASS,string
$classname
,array
$constructorArgs
): PDOStatement|false
$query
, ?int $fetchMode
= PDO::FETCH_INTO, object $object
): PDOStatement|falsePDO::query() prepara e executa uma instrução SQL em uma única chamada de função, retornando a instrução como um objeto PDOStatement.
Para uma consulta que precisa ser emitida diversas vezes, obtém-se melhor desempenho se for preparado um objeto PDOStatement usando PDO::prepare() e emitida a instrução com múltiplas chamadas a PDOStatement::execute().
Se não forem buscados todos os dados em um conjunto de resultados antes de emitir a próxima chamada a PDO::query(), a chamada poderá falhar. Deve-se chamar PDOStatement::closeCursor() para liberar os recursos do banco de dados associados ao objeto PDOStatement antes de se emitir a próxima chamada a PDO::query().
Note:
Se a
query
contiver marcadores, a instrução deverá ser preparada e executada separadamente usando os métodos PDO::prepare() e PDOStatement::execute().
Parâmetros
query
-
A instrução SQL a ser preparada e executada.
Se o SQL contiver marcadores, PDO::prepare() e PDOStatement::execute() deverão ser usados. Alternativamente, o SQL pode ser preparado manualmente antes de chamar PDO::query(), com os dados formatados corretamente usando PDO::quote() se o driver suportar.
fetchMode
-
O modo de busca padrão para o PDOStatement retornado. Deve ser uma das constantes
PDO::FETCH_*
.Se este argumento for passado para a função, os argumentos restantes serão tratados como se PDOStatement::setFetchMode() tivesse sido chamado no objeto de instrução resultante. Os argumentos subsequentes variam dependendo do modo de busca selecionado.
Valor Retornado
Retorna um objeto PDOStatement ou false
em caso de falha.
Erros/Exceções
Emite um erro de nível E_WARNING
se o atributo PDO::ATTR_ERRMODE
estiver definido
como PDO::ERRMODE_WARNING
.
Lança uma exceção PDOException se o atributo PDO::ATTR_ERRMODE
estiver definido como PDO::ERRMODE_EXCEPTION
.
Exemplos
Example #1 SQL sem marcadores pode ser executado usando PDO::query()
<?php
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "\t";
print $row['color'] . "\t";
print $row['calories'] . "\n";
}
?>
O exemplo acima produzirá:
apple red 150 banana yellow 250 kiwi brown 75 lemon yellow 25 orange orange 300 pear green 150 watermelon pink 90
Veja Também
- PDO::exec() - Executa uma instrução SQL e retorna o número de linhas afetadas
- PDO::prepare() - Prepara uma instrução para execução e retorna um objeto de instrução
- PDOStatement::execute() - Executa ums instrução preparada