Версія: 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 ..."
}