Версія: v2.3.0
query
Виконує власний Raw SQL-запит.
query($query, $map)
query [string]
Запит SQL для виконання.
map [array] (необов’язково)
Значення для прив’язки в підготовленому запиті.
Значення, що повертається
[PDOStatement] Екземпляр PDOStatement для виконаного запиту.
Medoo створює запити з використанням синтаксису SQL-92. Під час написання Raw SQL переконайтеся, що значення правильно взято в лапки, і за можливості віддавайте перевагу підготовленим запитам, щоб зменшити ризик 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);
Синтаксис цитування ідентифікаторів
Raw SQL-вирази підтримують скорочений синтаксис для цитування ідентифікаторів таблиць і стовпців, а також обробку префіксів таблиць. Використовуйте
<name>, щоб позначити ідентифікатор, і Medoo перетворить його на коректно взяту в лапки назву таблиці або стовпця з урахуванням налаштованих префіксів.$data = $database->query("SELECT <email> FROM <account>")->fetchAll();
// Перетворений SQL:
// SELECT "email" FROM "account"
// Якщо налаштовано префікс таблиць, запит матиме такий вигляд:
$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
Підготовлений запит
query() також підтримує підготовлені запити. Medoo автоматично визначає типи параметрів для прив’язаних вхідних значень.$data = $database->query( "SELECT * FROM <account> WHERE <user_name> = :user_name AND <age> = :age", [ ":user_name" => "John Smith", ":age" => 20 ] )->fetchAll(); print_r($data);