用户提问
这是在一个页面里的相关php代码
value="<?php echo $product_code; ?>"/>
时间段:
echo '';
$session = session_id();
$query = 'SELECT
qty, starttime, FROM_UNIXTIME(endtime)
FROM
ecomm_temp_cart
WHERE
session = "' . $session . '" AND
product_code = "' . $product_code . '"';
$result = mysql_query($query, $db)or die(mysql_error($db));
if (mysql_num_rows($result) > 0) {
$row = mysql_fetch_assoc($result);
extract($row);
} else {
$qty = 0;
$starttime = 2013;
$endtime = "2013-01-01 12:00:00";
}
mysql_free_result($result);
echo '';
echo '';
echo '';
这是action页面的相关代码
$qty = (isset($_POST['qty']) && ctype_digit($_POST['qty'])) ? $_POST['qty'] : 0;
$starttime = (isset($_POST['starttime']) && ctype_digit($_POST['starttime'])) ? $_POST['starttime'] : 0;
$endtime = (isset($_POST['endtime']) && ctype_digit($_POST['endtime'])) ? $_POST['endtime'] : 0;
if (!empty($product_code) && $qty > 0) {
$query = 'INSERT INTO ecomm_temp_cart
(session, product_code, starttime, endtime, qty)
VALUES
("' . $session . '", "' .
mysql_real_escape_string($product_code, $db) . '", ' . $starttime . ', UNIX_TIMESTAMP("' . $endtime . '"), ' . $qty . ')';
mysql_query($query, $db) or die(mysql_error($db));
}
header('Location: ' . $redirect);
exit();
break;
starttime和endtime其他设置一样
为测试,我输入的starttime和endtime是两种形式,starttime是普通的数字串,传值成功,存入数据库成功。为什么endtime,"1990-09-09 12:00:20"这种,传不了,而且用unix_timestamp存不进去呢?
求解啊~~谢谢谢~
推荐答案
是传不了,还是不能存入数据库呢?
是不是数据库设计的时间字段是int型的!你传入的数据是string形式的有关呢?
你最好把sql语句echo出来,然后直接在数据库运行一下!看看什么地方报错,也可以!
辅助答案
用户:蹲墙角画圈
2017年11月19日
用TIMESTAMP这个类型.存的是时间戳.转换下.虽然能存储的年份少些.到 203几年...好像是2038年.但是一个是方便.另外一个是节省空间
用户:间隔年gap
2017年12月19日
建议你用$endtime = strtotime($endtime);在php端转为时间戳再存进去