【问题标题】:PHP STR_TO_DATE() Function not postingPHP STR_TO_DATE() 函数未发布
【发布时间】: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 queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug切勿$_POST$_GET 数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • $Saledate$Dateentered 的值是多少?您确定它们与您使用的格式匹配吗?
  • @Barmar 格式为 2016 年 6 月 23 日
  • 您是否收到查询错误?您应该打印mysqli_error($con) 而不仅仅是Insert failed,这样您就会看到错误的原因。
  • 你的问题说它失败了。它到底做错了什么?

标签: php mysql html post


【解决方案1】:

来自 MySQL 文档:

这是 DATE_FORMAT() 函数的逆函数。它需要一个字符串 str 和一个格式字符串格式。如果格式字符串同时包含日期和时间部分,则 STR_TO_DATE() 返回 DATETIME 值;如果字符串仅包含日期或时间部分,则返回 DATE 或 TIME 值。如果从 str 中提取的日期、时间或日期时间值非法,则 STR_TO_DATE() 返回 NULL 并产生警告。

您获得的日期的帖子参数的值是多少?它们是否与您传递给函数的格式相匹配?尝试执行 $_POST 的 var_dump 并粘贴值,以便我们检查是否有问题。

【讨论】:

  • Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's',STR_TO_DATE('6/21/16', '%m/%d/%Y'),STR_TO_DATE('6/21/16', '%m/%d/%Y'))' at line 1
  • 可以粘贴整个sql字符串吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-09
  • 1970-01-01
  • 2014-09-15
  • 2017-04-16
  • 1970-01-01
相关资源
最近更新 更多