UK Українська
Версія: 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 ..."
}