Versione: v2.3.0
query
Eseguire una query Raw SQL personalizzata.
query($query, $map)
query [string]
La query SQL da eseguire.
map [array] (facoltativo)
I valori da associare allo statement preparato.
Valore restituito
[PDOStatement] L'istanza PDOStatement per la query eseguita.
Medoo genera le query usando la sintassi SQL-92. Quando scrivi Raw SQL, assicurati che i valori siano racchiusi correttamente tra virgolette e, quando possibile, preferisci gli statement preparati per ridurre il rischio di iniezione 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);
Sintassi di quoting degli identificatori
Le espressioni SQL grezze supportano una sintassi abbreviata per racchiudere tra virgolette gli identificatori di tabella e di colonna, oltre alla gestione dei prefissi di tabella. Usa
<name> per contrassegnare un identificatore e Medoo lo convertirà nel nome di tabella o colonna correttamente quotato, inclusi gli eventuali prefissi configurati.$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// SQL convertito:
// SELECT "email" FROM "account"
// Se è configurato un prefisso di tabella, la query diventa:
$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
Istruzione preparata
query() supporta anche le istruzioni preparate. Medoo rileva automaticamente i tipi dei parametri per i valori di input associati.$data = $database->query( "SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [ ":user_name" => "John Smith", ":age" => 20 ] )->fetchAll(); print_r($data);