Versão: v2.3.0
debug
Habilita o modo de depuração para exibir o SQL gerado sem executá-lo.
debug()
Valor de retorno
[Medoo] A instância Medoo com modo de depuração habilitado.
O Medoo exibe o SQL gerado sem executá-lo. Desative o modo de depuração após concluir a análise.
SQL gerado
Use
debug() para inspecionar o SQL gerado pela consulta atual.$database->debug()->select("bccount", [
"user_name",
"email"
], [
"user_id[<]" => 20
]);
// Saída:
// SELECT "user_name","email" FROM "bccount" WHERE "user_id" < 20
Caso Perigoso
Em alguns casos, uma única chamada executa várias consultas SQL. Se você chamar
debug() em uma consulta, o código subsequente ainda será executado, o que poderá levar a um comportamento inesperado.// Isto não gera nenhuma saída.
$database->insert("account", [
"user_name" => "foo",
"email" => "foo@bar.com"
]);
// Exibe a consulta gerada.
$post_id = $database->debug()->get("post", "post_id", ["user_name" => "foo"]);
// Atenção: esta consulta será executada. Como debug() foi chamado acima, agora $post_id é false.
$database->update("account", [
"level[+]" => 5,
"post" => $post_id
], [
"user_name" => "foo"
]);
Registro de depuração
Para depurar seu projeto sem adicionar
debug() a cada consulta, chame beginDebug() para iniciar o registro. Em seguida, chame debugLog() para interromper o registro e retornar todas as instruções SQL coletadas como uma matriz.// Inicie o log de depuração.
$database->beginDebug();
// Essas consultas não são executadas; elas são registradas no log de depuração.
$database->select("account", ["user_name", "email"], ["user_id[<]" => 20]);
$database->update("account", ["level[+]" => 1], ["user_id[>]" => 100]);
// Chame debugLog() para interromper o log e retornar todas as instruções SQL registradas.
var_dump($database->debugLog());
// Saída:
array(2) {
[0]=> string(10) "SELECT ... FROM"
[1]=> string(10) "UPDATE ... SET ... WHERE ..."
}