为什么这段代码会无声地失败?我如何让它向我展示SQL错误究竟是什么?
$dbh=DBI->connect($db_name,$db_user,$db_pass);
Run Code Online (Sandbox Code Playgroud)
我将代码修改为如下所示:
$dbh=DBI->connect($db_name,$db_user,$db_pass)
or die("could not connect to db: $db_name");
Run Code Online (Sandbox Code Playgroud)
而不是允许我使用$dbh未分配的,它将按预期失败,但它并没有告诉我它为什么失败.$db_name就我所见,etc 的值都设置为有效值.
我知道真正的错误(MySQL服务器实际上没有运行)但是为了将来的参考,我希望看到真正的错误,例如我导致auth失败.
你没有看到connect失败的原因,因为你没有做DBI给你做的事情.错误将在$DBI::errstr变量中:
$dbh = DBI->connect($data_source, $username, $password)
or die $DBI::errstr;
Run Code Online (Sandbox Code Playgroud)
确保您阅读了要使用的任何功能或方法的文档.:)