首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:当字符串变为-2008时插入日期

PHP:当字符串变为-2008时插入日期
EN

Stack Overflow用户
提问于 2018-08-21 03:52:42
回答 1查看 47关注 0票数 0

当我通过MySqlI查询来添加会话信息时,我添加了字符串形式的日期,但是当我在phpMyAdmin中查找时,日期是-2008。我回显出日期字符串,它是正确的日期。与数据库的连接正常

PHP:

代码语言:javascript
复制
$endDate = date('d-m-Y',strtotime("+30 days"));
$sresult = mysqli_query($con, "INSERT INTO `sessions`(`session_id`, `session_token`, `session_serial`, `session_date`) VALUES (".rand(120, 1200).",3564578,1234586723, ".$endDate.")") or die("Failed to query database ".mysqli_error($con));
echo "Login success!!! Welcome ".$row['uid']."".$endDate; #Correct Date

phpMyAdmin:

session_id,session_token,session_serial,session_date,

3564578,1234586723,-2008,

应该是:

session_id,session_token,session_serial,session_date,

161,3564578,1234586723,19-09-2018

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-21 03:58:49

您没有对日期值进行转义,而且数据库中session_date的字段类型似乎是一个整数。

由于在生成SQL时没有转义该值,因此将其解析为19 - 09 - 2018,根据您运行该语句的月份和日期,最终结果为-2008 (19减9减2,018)。

第一个修复方法是正确地包含值(您应该为此使用准备好的语句,因为它会自动为您处理它,但因为您可以信任数据):

代码语言:javascript
复制
... 1234586723, '" . $endDate . "')

请注意,对于日期字段,MySQL可能需要YYYY-mm-dd ISO格式的日期,因此您可能也希望将生成的日期字符串更改为该格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51937663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档