由于某种原因,当我向数据库提交表单时,日期列中的日期和时间显示0000-00-00 00:00:00。唯一的方法,我可以得到正确的日期是手动更新。它才刚开始这么做,我不知道我改变了什么。我很难解决这个问题。
编辑表格:
<?php
if(!defined('IN_ADMIN')) exit;
?>
<div class="page">
<h1 class="edit"><?=ucfirst($mode)?> post</h1>
<span class="error-text"><?=$response_text?></span>
<form action="admin.php?mode=<?=$mode?>&id=<?=$post['post_id']?>" method="post">
<p>
<label for="title">Post title:</label><br />
<input type="text" size="80" id="title" name="data[post_title]" value="<?=htmlspecialchars(stripslashes($post['post_title']))?>" />
</p>
<p>
<label for="title">Upload Image:</label><br />
<input type="text" size="80" id="title" name="data[image]" value="<?=htmlspecialchars(stripslashes($post['image']))?>" />
</p>
<p>
<label for="title">Image Alt:</label><br />
<input type="text" size="80" id="title" name="data[image_alt]" value="<?=htmlspecialchars(stripslashes($post['image_alt']))?>" />
</p>
<p>
<label for="title">Post Category:</label><br />
<input type="text" size="80" id="title" name="data[post_category]" value="<?=htmlspecialchars(stripslashes($post['post_category']))?>" />
</p>
<p>
<label for="content">Post Insert:</label><br />
<textarea cols="77" rows="10" id="insert" name="data[post_insert]"><?=htmlspecialchars(stripslashes($post['post_insert']))?></textarea><br />
<span class="form-text">Brief little tid-bit about the article for home page</span>
</p>
<p>
<label for="content">Post content:</label><br />
<script>edToolbar('mytxtarea'); </script>
<textarea cols="77" rows="10" id="mytxtarea" class="ed" name="data[post_content]"><?=htmlspecialchars(stripslashes($post['post_content']))?></textarea><br />
<span class="form-text">To format just use raw HTML.. <strong>, <span>, etc</span>
</p>
<p>
<label for="status">Post status:</label><br />
<select id="status" name="data[published]">
<?=generate_option_list(array('0' => 'Unpublished', '1' => 'Published'), $post['published'])?>
</select>
</p>
<p>
<input class="button" type="submit" name="miniblog_PostBack" value="<?=ucfirst($mode)?>" />
</p>
</div>这是我使用的表单,下面是表单中的index.php:
case 'add':
if(isset($_POST['miniblog_PostBack']))
{
$data = $_POST['data'];
$data['post_slug'] = mb_slug($_POST['data']['post_title']);
$data['date'] = time();
$sql ='';
$i = 1;
foreach($data as $field => $value)
{
if($value == '')
{
$failed = true;
break;
}
$fields .= "`" . mysql_real_escape_string($field) . "`";
$values .= "'" . mysql_real_escape_string($value) . "'";
$values .= ($i == sizeof($data)) ? '' : ', ';
$fields .= ($i == sizeof($data)) ? '' : ', ';
$i++;
}
$post = $_POST['data'];
if($failed)
{
$response_text = 'Error: You must fill out all fields';
}
else
{
$result = mysql_query("INSERT INTO `db` ({$fields}) VALUES({$values})");
$response_text = ($result) ? 'Post added' : 'Post could not be added';
}
}
include('edit.php');
break;发布于 2015-08-31 00:53:02
$data['date'] = time();应:
$data['date'] = date("Y-m-d H:i:s");time()函数返回自Unix (1970年1月1日00:00:00GMT)以来的秒数的当前时间。
date()函数格式化本地日期和时间(默认情况下是当前的),并返回格式化的日期字符串(在本例中,是MYSQL需要的格式)。
发布于 2015-08-31 00:48:58
表中日期的字段类型是什么?您将时间戳作为strIng而不是整数发送,也许这就是问题所在,您还应该考虑查看mysql引擎提供的现在()函数。
https://stackoverflow.com/questions/32302573
复制相似问题