CodeIgniter SQL查询错误处理

时间:2013-03-30 23:17:50

标签: php sql codeigniter error-handling

此时我会像这样访问我的帖子

http://localhost/post/174565/

一切正常,但当我试图像这样访问它们时

http://localhost/post/1745s65/

我收到错误

Error Number: 1054
Unknown column '1745s65' in 'where clause'
SELECT * FROM posts WHERE id = 1745s65;
Filename: D:\Localhost\Apache\htdocs\code\system\database\DB_driver.php
Line Number: 330

我理解它为什么存在,但如何处理呢?例如,我的用户不需要查看SQL查询,我想显示404页面而不是此块。

3 个答案:

答案 0 :(得分:2)

使用例外:

try{
       //here what you need to do with script
         } catch (Exception $e) {
            var_dump($e->getMessage());
            show_404();
              }

我认为你也可以尝试:

$database['db_debug'] = FALSE;中的{p> config/database.php如果要删除数据库错误

答案 1 :(得分:1)

试试这段代码:

public function getPostData($iPostId) {
    $sqlQuery = $this->db->get_where('posts', array('id' => $iPostId));
    $aResult = $sqlQuery->result();

    if (empty($aResult)) {
        show_404();
    }
    else {
        return $aResult[0];
    }
}

答案 2 :(得分:0)

您需要验证用户输入以防止出现此问题。 无论如何,Codeigniter有两个预设环境:开发和生产。检查root index.php以获取更多信息。