IT Italiano
Versione: v2.3.0

debug

Abilita la modalità di debug per mostrare l’SQL generato senza eseguirlo.

debug()
Valore restituito
[Medoo] L'istanza Medoo con la modalità debug abilitata.
Medoo mostra l’SQL generato senza eseguirlo. Disattiva la modalità di debug dopo aver completato la diagnosi.

SQL generato

Utilizzare debug() per controllare il SQL generato dalla query corrente.
$database->debug()->select("bccount", [
	"user_name",
	"email"
], [
	"user_id[<]" => 20
]);

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

Caso pericoloso

In alcuni casi, una singola richiesta esegue più query SQL. Se chiami debug() su una query, il codice successivo viene comunque eseguito, il che potrebbe portare a comportamenti imprevisti.
// Questo non produce alcun output.
$database->insert("account", [
	"user_name" => "foo",
	"email" => "foo@bar.com"
]);

// Mostra la query generata.
$post_id = $database->debug()->get("post", "post_id", ["user_name" => "foo"]);

// Attenzione: questa query verra eseguita. Poiche debug() e stato eseguito sopra, $post_id ora e false.
$database->update("account", [
	"level[+]" => 5,
	"post" => $post_id
], [
	"user_name" => "foo"
]);

Registrazione del debug

Per eseguire il debug del tuo progetto senza aggiungere debug() a ogni query, chiama beginDebug() per avviare la registrazione. Quindi chiamare debugLog() per interrompere la registrazione e restituire tutte le istruzioni SQL raccolte come array.
// Avvia il logging di debug.
$database->beginDebug();

// Queste query non vengono eseguite; vengono registrate nel log di debug.
$database->select("account", ["user_name", "email"], ["user_id[<]" => 20]);
$database->update("account", ["level[+]" => 1], ["user_id[>]" => 100]);

// Chiama debugLog() per interrompere il logging e restituire tutte le istruzioni SQL registrate.
var_dump($database->debugLog());

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