我检查了很长的问题列表,这些问题似乎是为了解决无法将HTML中的日期生成转换为符合MySQL的日期格式的问题(请注意:日期不是日期时间)。
使用下面的HTML片段,我正在通过POST形成一个输入(请注意:表单上还有其他输入,这只是一个细分,以便于建模)。
<!-- Language: HTML -->
<form method="post" action="php/editLoan.php">
<input type="date" name="dateOfLoan"/>
</form>当按下submit按钮时,信息将为POSTed到引用的PHP。在这里,有很多事情要做,所以我将只包括日期发生的事情。
// 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“显示了以下条目。
c:theDateField
0000-00-00
0000-00-00
0000-00-00
0000-00-00我不太清楚我在哪里做错了,一些指导将是非常感谢的!非常感谢你的帮助!
发布于 2017-07-13 12:21:25
对价值使用单引号-
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES ('$sqlDate')");发布于 2017-07-13 12:22:44
在准备好的语句中使用适当的参数,而不是变量替换。
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES (:date)");
$query->bindParam(':date', $sqlDate);
$query->execute();发布于 2017-07-13 12:22:54
这可能会解决你的问题:
$dateOfLoan = $_POST["dateOfLoan"];
$query = $dbh->prepare("INSERT INTO theTable (theDateField) VALUES (STR_TO_DATE('$dateOfLoan', '%d/%m/%Y'))");https://stackoverflow.com/questions/45080373
复制相似问题