3 php mysql debugging codeigniter
我按照教程中的步骤学习如何使用Code Igniter构建PHP/MySQL应用程序,完成后应用程序失败,没有错误.我正在使用TextMate而不是功能齐全的IDE.
大多数开发人员如何使用Code Igniter调试他们的应用程序?框架中是否存在冒泡错误和堆栈跟踪到浏览器会话中的内容?
我现在要解决的具体问题似乎与数据库有关.我配置了我的数据库,设置了autoload.php,并创建了一个用于处理表数据的控制器和模型,以及一个用于呈现它的视图.来自我的accounts_model.php:
public function getData()
{
//Query the data table for every record and row
$query = $this->db->get('accounts');
if ($query->num_rows() > 0)
{
show_error('Database is empty!');
}
else
{
return $query->result();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,我看到"遇到错误\n数据库为空!".因为我知道数据库不是空的并且配置是正确的,所以我需要框架中的一些内容来提示我是否连接到数据库或查询为空的原因.
一个好的做法是将关键代码放入try/catch块中,以便您可以处理异常,然后记录该错误的堆栈跟踪.在我最近的经验中,我使用了try/catch块以及CodeIgniter提供的show_error()函数来调试和捕获代码中的错误.这是一个例子:
public function getData()
{
//Query the data table for every record and row
try{
$query = $this->db->get('accounts');
if ($query->num_rows() > 0)
{
show_error('Database is empty!');
}
else
{
return $query->result();
}
} catch(Exception $e){
log_message('debug',$e->getMessage()); // use codeigniters built in logging library
show_error($e->getMessage()); // or echo $e->getMessage()
}
}
Run Code Online (Sandbox Code Playgroud)
PHP异常类提供了各种方法来帮助调试错误.http://www.php.net/manual/en/class.exception.php