الإصدار: v2.3.0
query
تنفيذ استعلام SQL خام مخصص.
query($query, $map)
query [string]
الاستعلام SQL المطلوب تنفيذه.
map [array] (اختياري)
القيم المطلوب ربطها في العبارة المُحضَّرة.
القيمة المُعادة
[PDOStatement] مثيل PDOStatement للاستعلام الذي تم تنفيذه.
ينشئ Medoo الاستعلامات باستخدام صياغة SQL-92. عند كتابة 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);
بناء جملة اقتباس المعرّفات
تدعم تعبيرات 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);