Codeigniter记录不会插入

时间:2012-07-03 22:01:25

标签: mysql insert

第一次使用CI,我正在用这个看似简单的问题粉碎我的脑袋。我的查询不会插入记录。

在尝试调试可能的问题时,插入代码已经简化,但我仍然没有得到快乐。

基本上,我正在使用;

$data = array('post_post' => $this->input->post('ask_question'));
$this->db->insert('posts', $data); 

我没有收到任何错误(尽管这可能是因为在config / database.php中因为另一个与CI相关的创伤而禁用它们: - $)

我用过

echo print $this->db->last_query();

获取生成的查询,如下所示:

INSERT INTO `posts` (`post_post`) VALUES ('some text')

我已将此查询粘贴到phpMyAdmin中,它插入没有问题。我甚至尝试使用$this->db->query()“手动”运行上面输出的查询,但同样,记录将不会插入。

数据库表'posts'的方案只是两列,post_id& post_post。

拜托,关于这里发生的任何指示都将非常感谢...谢谢

2 个答案:

答案 0 :(得分:1)

好的..解决了,经过多次弄乱CI。

通过将持久连接设置为false来实现它。

$db['default']['pconnect'] = FALSE;

叹息

答案 1 :(得分:0)

事情通常看起来不错,你所说的一切表明它应该有效。我的第一直觉是检查你插入的内容是否与你的SQL字段兼容。

只是一个很酷的CI功能;我建议你看一下CI Database Transaction课程。事务允许您将查询/查询包装在事务中,事务可以在失败时回滚,并且还可以使错误处理更容易:

    $this->db->trans_start();
    $this->db->query('INSERT INTO posts ...etc ');
    $this->db->trans_complete();

    if ($this->db->trans_status() === FALSE)
    {
        // generate an error... or use the log_message() function to log your error
    }

或者,您可以做的一件事是将Insert SQL语句放入$ this-> db-> query(your_query_here),而不是调用insert。有一个名为Query绑定的CI查询功能,它还可以自动转义传递的数据数组。

让我知道它是怎么回事,并希望这有帮助!