gpt4 book ai didi

php - 在 MySQL 中保存日期? (PHP)

转载 作者:行者123 更新时间:2023-11-29 07:32:29 24 4
gpt4 key购买 nike

我正在学习/培训 MySQL、PHP 我是 PHP 初学者所以我试图做一个 CRUD,所以我试图将日期保存在数据库中。所以我在表单中使用了输入类型“DATE”。但 id 工作得不太好它只是不插入日期只是将其保存为 0000-00-00 (MySQL 数据类型 DATE)形式:

    <input type="date" name="release">

这里。

if (isset($_GET['submit'])) {
$ename= $_GET['name'];
$edate= $_GET['release'];
$eseas= $_GET['season'];

$insert= "INSERT into episodes (name, date, season) values($ename,$edate,$eseas) ";

我正在学习PHP,如果有更好的方法请推荐我预先感谢:-)

最佳答案

错误 #1:您很容易受到 sql injection attacks 的攻击。在继续之前,请转到此链接并阅读并理解问题

错误 #2:您没有引用您的值,因此您的 PHP

$sql = "INSERT ... VALUES(...,$edate,...)"

将生成以下 SQL:

INSERT ... VALUES (...,2015-08-20,...)

由于您的日期值没有引号,因此它不是真正的日期。这是一个数学减法,您实际上正在执行 2015-8-20 => 1987,并且查询执行为

INSERT ... VALUES (...,1987,...)

由于 1987 不是有效的日期字符串(mysql 需要 yyyy-mm-dd),因此您在数据库中获得全零日期。

忽略注入(inject)问题,你需要:

$insert= "INSERT into episodes (name, date, season) values($ename,'$edate',$eseas) ";
^------^

对于任何其他非普通数字的字段值也类似。如果您不引用字符串,则字符串将被解释为字段/表名称,这些名称可能不存在。

关于php - 在 MySQL 中保存日期? (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32126733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com