DE Deutsch
Version: v2.3.0

debug

Den Debug-Modus aktivieren, um das generierte SQL auszugeben, ohne es auszuführen.

debug()
Rückgabewert
[Medoo] Die Medoo Instanz mit aktiviertem Debug-Modus.
Medoo gibt das generierte SQL aus, ohne es auszuführen. Deaktivieren Sie den Debug-Modus nach der Fehlerbehebung.

Generiertes SQL

Verwenden Sie debug(), um den von der aktuellen Abfrage generierten SQL zu überprüfen.
$database->debug()->select("bccount", [
	"user_name",
	"email"
], [
	"user_id[<]" => 20
]);

// Ausgabe:
// SELECT "user_name","email" FROM "bccount" WHERE "user_id" < 20

Gefährlicher Fall

In manchen Fällen führt eine einzelne Anfrage mehrere SQL Abfragen aus. Wenn Sie bei einer Abfrage debug() aufrufen, wird der nachfolgende Code weiterhin ausgeführt, was zu unerwartetem Verhalten führen kann.
// Dies gibt nichts aus.
$database->insert("account", [
	"user_name" => "foo",
	"email" => "foo@bar.com"
]);

// Gibt die erzeugte Abfrage aus.
$post_id = $database->debug()->get("post", "post_id", ["user_name" => "foo"]);

// Achtung: Diese Abfrage wird ausgefuehrt. Da debug() oben bereits lief, ist $post_id jetzt false.
$database->update("account", [
	"level[+]" => 5,
	"post" => $post_id
], [
	"user_name" => "foo"
]);

Debug-Protokollierung

Um Ihr Projekt zu debuggen, ohne debug() zu jeder Abfrage hinzuzufügen, rufen Sie beginDebug() auf, um mit der Protokollierung zu beginnen. Rufen Sie dann debugLog() auf, um die Protokollierung zu stoppen und alle gesammelten SQL-Anweisungen als Array zurückzugeben.
// Startet die Debug-Protokollierung.
$database->beginDebug();

// Diese Abfragen werden nicht ausgefuehrt; sie werden nur im Debug-Protokoll aufgezeichnet.
$database->select("account", ["user_name", "email"], ["user_id[<]" => 20]);
$database->update("account", ["level[+]" => 1], ["user_id[>]" => 100]);

// Rufen Sie debugLog() auf, um die Protokollierung zu beenden und alle aufgezeichneten SQL-Anweisungen zurueckzugeben.
var_dump($database->debugLog());

// Ausgabe:
array(2) {
  [0]=> string(10) "SELECT ... FROM"
  [1]=> string(10) "UPDATE ... SET ... WHERE ..."
}