【发布时间】:2016-06-24 03:05:57
【问题描述】:
我正在尝试使用 STR_TO_DATE() 函数插入日期。由于某种原因,它一直失败。任何人都可以帮忙吗?谢谢
HTML:
<form action="config.php" method="POST">
Total Sales : <br><input type="text" id="total" name="total"><br>
Company Name : <br><input type="text" id="company" name="company"><br>
Sales Type : <br><input type="text" id="type" name="type"><br>
Sales Date : <br><input type="date" id="saledate" name="saledate"><br>
Date Entered : <br><input type="date" id="dateenter" name="dateenter"><br><br>
<input type="submit" value="insert">
</form>
PHP:
<?php
$con=mysqli_connect("***","***","***","***");
$Total = $_POST['total'];
$Company = $_POST['company'];
$Type = $_POST['type'];
$Saledate = $_POST['saledate'];
$Dateentered = $_POST['dateenter'];
$sql = "INSERT INTO htgsales (SaleAmount,Company,SalesType,SalesDate,DateEntered) VALUES ('$Total','$Company','$Type',STR_TO_DATE('$Saledate', '%m/%d/%Y'),STR_TO_DATE('$Dateentered', '%m/%d/%Y'))";
if(!mysqli_query($con,$sql))
{
echo 'Insert Failed';
}
else
{
echo 'Success';
}
?>
【问题讨论】:
-
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
$Saledate和$Dateentered的值是多少?您确定它们与您使用的格式匹配吗? -
@Barmar 格式为 2016 年 6 月 23 日
-
您是否收到查询错误?您应该打印
mysqli_error($con)而不仅仅是Insert failed,这样您就会看到错误的原因。 -
你的问题说它失败了。它到底做错了什么?