【问题标题】:codeigniter - insert return true, without modifying databasecodeigniter - 插入返回 true,不修改数据库
【发布时间】:2012-06-29 14:55:04
【问题描述】:

我在 for 中得到了这个更新脚本:

if(isset($_POST[$i+1 . '_create_metier'])){
  $new_entry = array(
    'id_parent' => $current[0]->id,
    'work' => $_POST[$i+1 . '_create_metier'],
    'days' => $_POST[$i+1 . '_create_daycount'],
    'price' => $_POST[$i+1 . '_create_price'],
    'cr_date' => date('d-m-Y H:i:s'),
    'user' => ''
  );
  var_dump($new_entry);
  if(!$this->db->insert('meta_parent',$new_entry)){
    echo 'fail';
    $p3 = 0;
  }else{
    echo 'success';
  }
}

var_dump 为我的 db 结构返回一个填充良好的数组,并打印“成功”,这意味着查询有效。

但我的数据库中没有任何修改。这不是我第一次使用 codeigniter,我从来没有遇到过这样的问题。

感谢您的帮助

【问题讨论】:

  • 您可以使用$this->db->last_query() 查看正在运行的特定查询。它可能会给你一些见解。
  • 可能不允许重复您确定没有收到任何错误
  • 我打印了 $this->db->last_query() 而不是成功,它返回了一个经典查询:INSERT INTO meta_parent (id_parent, work, days, @987654328 @, cr_date, user) VALUES ('111', 'LAMP Developer', '3', '1800', '29-06-2012 17:40:23', '') 我一次又一次地检查,meta_parent 表没有得到任何新内容
  • 您是否尝试直接在数据库上运行此查询?运行成功了吗?您是否激活了数据库调试?查看您的 application/config/database.php 文件。
  • @user1409885:正如 Gustavo 所暗示的那样,查看实际查询的目的是您可以在 CodeIgniter 的上下文之外运行它。有时它可以更清楚到底出了什么问题。

标签: php database codeigniter


【解决方案1】:

我认为错误是日期格式,MySQL接受这种格式的日期:Y-m-d H:i:s

尝试替换

'cr_date' => date('d-m-Y H:i:s'),

'cr_date' => date('Y-m-d H:i:s'),

【讨论】:

  • 正确提示日期,但插入仍然阻塞。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-06-07
  • 1970-01-01
  • 2013-03-28
  • 1970-01-01
  • 2014-05-04
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多