Rap*_*rex 1 php mysql datetime codeigniter
我想在MySql中输入datetime字段的日期和时间.现在,它正在以00:00:00进入datetime.我有3个表:文章,用户和userarticles.
article:id(int),title(varchar),url(varchar),body(text),date(datetime)
user:id(int)....
userarticle:uid(int),aid(int)-where uid是user.id,援助是article.id
这是我的用户控制器的一部分:
function newArticle()
{
$this->load->view('newArticleview');
}
function insertArticle()
{
//insert from form into article table
$this->db->insert('article', $_POST);
//get ID of the row just added
$rowID = $this->db->insert_id();
$uid = $this->tank_auth->get_user_id();
$data = array('uid' => $uid, 'aid' => $rowID);
//insert uid and aid into userarticles table
$this->db->insert('userarticles', $data);
redirect('');
}
Run Code Online (Sandbox Code Playgroud)
我的新文章
<html>
<head>
<title>Save Me - Add New Article</title>
</head>
<body>
<?php
$date = date("Y-m-d H:i:s");
echo form_hidden('date', $date);
echo form_open('user/insertArticle');
?>
<p>Title:<input type="text" name="title"></p>
<p>URL:<input type="text" name="url"></p>
<p><textarea name="body" rows="20"></textarea></p>
<p><input type="submit" value="Submit"></p>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
除了datetime之外,所有内容都正确地插入到数据库中,有谁知道什么是错的?隐藏的表单正确显示为<input type="hidden" name="date" value="2011-04-08 21:51:10" />
您正在表单开始之前输出隐藏的表单字段.不确定是否会破坏CI,但它是无效的标记.form_open帮助器可以采用第三个参数 - 隐藏字段数组.所以这样的事情可以代替/添加:
$hidden=array('item_id'=>$this->uri->segment(3));
echo form_open('admin/do_upload', '', $hidden); ?>
Run Code Online (Sandbox Code Playgroud)
实际上,你不需要在视图中输入日期,除非你有特定的用途(即用于javascript或其他东西)
我的模型中有类似的东西,由时间创建/修改:
// $data contains everything from the form, I pass this to my model, and then do:
$data['created'] = date('Y-m-d H:i:s');
$this->db->insert('my_table', $data);
Run Code Online (Sandbox Code Playgroud)
created我的专栏名称在哪里.
如果你没有使用模型,你可以把它放在你的控制器中,但为了MVC的利益,它应该真的在一个模型中.
不要忘记你总能做到:
print_r($this->input->post())或者print_r($_POST)看看真正被拾取的东西 - 使用输入库有助于自动为您完成所有事情,显然,这不是一项要求,但功能内置于CI中.
| 归档时间: |
|
| 查看次数: |
14137 次 |
| 最近记录: |