Version: v2.3.0
query
Exécuter une requête SQL brute personnalisée.
query($query, $map)
query [string]
La requête SQL à exécuter.
map [array] (facultatif)
Les valeurs à lier pour la requête préparée.
Valeur de retour
[PDOStatement] Instance PDOStatement pour la requête exécutée.
Medoo génère les requêtes avec une syntaxe SQL-92. Lorsque vous écrivez du SQL brut, assurez-vous que les valeurs sont correctement placées entre guillemets et privilégiez, lorsque c’est possible, les requêtes préparées afin de réduire le risque d’injection 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);
Syntaxe de citation des identifiants
Les expressions SQL brutes prennent en charge une syntaxe abrégée pour citer les identifiants de table et de colonne, ainsi que la gestion des préfixes de table. Utilisez
<name> pour marquer un identifiant, et Medoo le convertira en nom de table ou de colonne correctement cité, y compris avec les préfixes configurés.$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// SQL converti :
// SELECT "email" FROM "account"
// Si un préfixe de table est configuré, la requête devient :
$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
Instruction préparée
query() prend également en charge les instructions préparées. Medoo détecte automatiquement le type des paramètres liés.$data = $database->query( "SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [ ":user_name" => "John Smith", ":age" => 20 ] )->fetchAll(); print_r($data);