【问题标题】:Current timestamp field in mysql table is not updated automaticallymysql 表中的当前时间戳字段不会自动更新
【发布时间】:2013-05-10 05:47:55
【问题描述】:

我真的很抱歉问了这么一个简单的问题,但我被困在了这个问题上。实际上,我的表有三个列,例如 id、status 和 date。日期字段是当前时间戳(我也在 phpmyadmin 中选择了更新当前时间戳)。

我想要的是每次更新时都应该更新日期字段,但事实并非如此。这是我的代码;

if($_POST['status']=="Expired")
    {
        $_POST['remaining']=0;
    }
    if($this->db->update('user_package',$_POST,array('upid'=>$_POST['upid'])))
    {
        redirect('package/view_admin_package_pending');
    }
    else
    {
        echo "Hey I could not update the User's requested Package. I am in Package Controller on line number 406";
    }

更新日期字段更新为 00000000 而不是正确的时间和日期。所以,谁能帮我找出解决方案。

注意:我也尝试过以下操作,但没有奏效;

$_POST['date']=now();

也试过了

$_POST['date']=time();

【问题讨论】:

    标签: mysql codeigniter timestamp sql-update


    【解决方案1】:

    您可以像这样直接在 SQL 中执行此操作

    update your_table
    set some_column = 1,
        `date` = current_timestamp
    where ...
    

    【讨论】:

      【解决方案2】:

      函数对于这段代码就足够了。

      $data = array(
                     'content_header' => $_POST['content_header'],
                      'content_body' => $_POST['content_body'],
                      'content_footer' => $_POST['content_footer'],
                      'post_catagory' => $_POST['post_catagory']
                      'update_time' => date('Y-m-d H:i:s')
              );
      

      【讨论】:

        【解决方案3】:

        实际上我的项目有问题。从理论上和逻辑上,当前时间戳(特别是在选择更新时间戳时)会自动将日期字段更新为当前时间戳。所以,我的代码是正确的,但我的项目很混乱。无论如何,我感谢每个人的回答。谢谢

        【讨论】:

          【解决方案4】:

          尽量不要使用 $_POST。 Codeigniter 提供了获取 $_POST 变量的有用方法:

          $my_update = array();
          $my_update['status'] = $this->input->post('status');//in controller
          

          ... 以相同的方式从表单中添加所有变量 ... 在您决定更新表格后,设置您需要的所有变量

          $data = array(
            'status' => $my_update['status'],
            //...
          );
          

          要设置 where 条件,最好使用 codeigniter 工具: $this->db->where('upid', $my_update['upid']); 之后,添加日期字段更新: $this->db->set('created', 'now()'); 然后你可以更新你的表:

          $this->db->update('user_package', $my_update);
          

          【讨论】:

            【解决方案5】:

            $_POST['date'] = date('Y-m-d H:i:s', strtotime('23.12.2013 15:23:23'));

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-11-14
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-07
              • 1970-01-01
              相关资源
              最近更新 更多