1

我真的很抱歉问了这么一个简单的问题,但我被困在里面了。实际上,我的表有三个列,例如 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();
4

5 回答 5

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')
        );
于 2013-12-29T06:08:31.243 回答
2

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

update your_table
set some_column = 1,
    `date` = current_timestamp
where ...
于 2013-05-15T15:11:47.047 回答
0

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

于 2013-05-15T17:29:44.597 回答
0

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

于 2013-05-16T12:37:37.517 回答
0

尽量不要使用 $_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);
于 2013-05-15T22:25:09.917 回答