首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP & MySQL - MySql输入类型日期到MySql日期

问PHP & MySQL - MySql输入类型日期到MySql日期
EN

Stack Overflow用户
提问于 2017-07-13 12:16:49
回答 3查看 1K关注 0票数 0

我检查了很长的问题列表,这些问题似乎是为了解决无法将HTML中的日期生成转换为符合MySQL的日期格式的问题(请注意:日期不是日期时间)。

使用下面的HTML片段,我正在通过POST形成一个输入(请注意:表单上还有其他输入,这只是一个细分,以便于建模)。

代码语言:javascript
复制
<!-- Language: HTML -->
<form method="post" action="php/editLoan.php">
    <input type="date" name="dateOfLoan"/>
</form>

当按下submit按钮时,信息将为POSTed到引用的PHP。在这里,有很多事情要做,所以我将只包括日期发生的事情。

代码语言:javascript
复制
// Language: PHP (7.1), which is the latest supported version for my host.

$dateOfLoan = $_POST["dateOfLoan"];  // Grabs the date of the loan from the postman.

$sqlDate = date("Y-m-d",strtotime($dateOfLoan));  // Converts the format.

$dbh = new PDO($this->connString, $username, $password);
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES ($sqlDate)");
$query->execute();

根据我从寻找答案中看到的,这应该是可行的。但是,当我转到phpMyAdmin (4.6.6)时,列"theDateField“显示了以下条目。

代码语言:javascript
复制
c:theDateField
0000-00-00
0000-00-00
0000-00-00
0000-00-00

我不太清楚我在哪里做错了,一些指导将是非常感谢的!非常感谢你的帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-07-13 12:21:25

对价值使用单引号-

代码语言:javascript
复制
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES ('$sqlDate')");
票数 2
EN

Stack Overflow用户

发布于 2017-07-13 12:22:44

在准备好的语句中使用适当的参数,而不是变量替换。

代码语言:javascript
复制
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES (:date)");
$query->bindParam(':date', $sqlDate);
$query->execute();
票数 3
EN

Stack Overflow用户

发布于 2017-07-13 12:22:54

这可能会解决你的问题:

代码语言:javascript
复制
$dateOfLoan = $_POST["dateOfLoan"];
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES (STR_TO_DATE('$dateOfLoan', '%d/%m/%Y'))");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45080373

复制
相关文章

相似问题

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