Versão: v2.3.0
query
Executar uma consulta Raw SQL personalizada.
query($query, $map)
query [string]
A consulta SQL a ser executada.
map [array] (opcional)
Os valores que serão vinculados na instrução preparada.
Valor de retorno
[PDOStatement] A instância PDOStatement da consulta executada.
O Medoo gera consultas com sintaxe SQL-92. Ao escrever Raw SQL, certifique-se de que os valores estejam corretamente entre aspas e, sempre que possível, prefira instruções preparadas para reduzir o risco de injeção de SQL.
$database->query("CREATE TABLE account_storage (
c1 INT STORAGE DISK,
c2 INT STORAGE MEMORY
) ENGINE NDB;");
$data = $database->query("SELECT email FROM account")->fetchAll();
print_r($data);
Sintaxe de citação de identificadores
Expressões SQL brutas aceitam uma sintaxe abreviada para citar identificadores de tabelas e colunas, além do tratamento de prefixos de tabela. Use
<name> para marcar um identificador e o Medoo o converterá para um nome de tabela ou coluna corretamente delimitado, incluindo os prefixos configurados.$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// SQL convertido:
// SELECT "email" FROM "account"
// Se um prefixo de tabela estiver configurado, a consulta passa a ser:
$database = new Medoo([
// ...
"prefix" => "WP_"
]);
$data = $database->query("SELECT <account.email>,<account.nickname>
FROM <account>
WHERE <id> != 100
")->fetchAll();
SELECT "WP_account"."email", "WP_account"."nickname" FROM "WP_account" WHERE "id" != 100
Instrução preparada
query() também oferece suporte a instruções preparadas. O Medoo detecta automaticamente os tipos de parâmetro para os valores vinculados.$data = $database->query( "SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [ ":user_name" => "John Smith", ":age" => 20 ] )->fetchAll(); print_r($data);