الإصدار: v2.3.0
debug
تمكين وضع التصحيح لإخراج SQL المُولَّد دون تنفيذه.
debug()
القيمة المُعادة
[Medoo] مثيل Medoo مع تمكين وضع التصحيح.
يعرض Medoo SQL المُولَّد دون تنفيذ الاستعلام. عطّل وضع التصحيح بعد الانتهاء من تشخيص المشكلة.
SQL المُولَّد
استخدم
debug() لفحص SQL الذي تم إنشاؤه بواسطة الاستعلام الحالي.$database->debug()->select("bccount", [
"user_name",
"email"
], [
"user_id[<]" => 20
]);
// الناتج:
// SELECT "user_name","email" FROM "bccount" WHERE "user_id" < 20
حالة خطيرة
في بعض الحالات، قد ينفّذ طلب واحد عدة استعلامات SQL. إذا استدعيت
debug() مع استعلام واحد، فسيستمر تشغيل التعليمات البرمجية التالية، مما قد يؤدي إلى سلوك غير متوقع.// لن ينتج هذا أي مخرجات.
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com"
]);
// يطبع الاستعلام الذي تم توليده.
$post_id = $database->debug()->get("post", "post_id", ["user_name" => "foo"]);
// انتبه: هذا الاستعلام سيُنفَّذ. وبما أن debug() شغّل أعلاه، أصبحت قيمة $post_id الآن false.
$database->update("account", [
"level[+]" => 5,
"post" => $post_id
], [
"user_name" => "foo"
]);
تسجيل التصحيح
لتصحيح مشروعك دون إضافة
debug() إلى كل استعلام، استدعِ beginDebug() لبدء التسجيل. ثم استدعِ debugLog() لإيقاف التسجيل وإرجاع جميع عبارات SQL المجمعة كمصفوفة.// ابدأ تسجيل التصحيح.
$database->beginDebug();
// لن تُنفَّذ هذه الاستعلامات؛ بل ستُسجَّل في سجل التصحيح.
$database->select("account", ["user_name", "email"], ["user_id[<]" => 20]);
$database->update("account", ["level[+]" => 1], ["user_id[>]" => 100]);
// استدعِ debugLog() لإيقاف التسجيل وإرجاع جميع عبارات SQL التي تم تسجيلها.
var_dump($database->debugLog());
// الناتج:
array(2) {
[0]=> string(10) "SELECT ... FROM"
[1]=> string(10) "UPDATE ... SET ... WHERE ..."
}