Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP日期仅赢得';t插入Mysql_Php_Mysql_Date - Fatal编程技术网

PHP日期仅赢得';t插入Mysql

PHP日期仅赢得';t插入Mysql,php,mysql,date,Php,Mysql,Date,我有一个HTML表单,通过php将大约30个变量插入mysql。除日期外,所有其他变量都正确插入。我在这里和其他地方看到了许多其他的问题,结果仍然是空的 最初,我在HTML表单(年、月、日)设置中只有3个输入,因此: <span class="form-sub-label-container" style="vertical-align: top"> <input class="form-textbox" id="year_6" name="lengt

我有一个HTML表单,通过php将大约30个变量插入mysql。除日期外,所有其他变量都正确插入。我在这里和其他地方看到了许多其他的问题,结果仍然是空的

最初,我在HTML表单(年、月、日)设置中只有3个输入,因此:

     <span class="form-sub-label-container" style="vertical-align: top">
        <input class="form-textbox" id="year_6" name="lengthOf[0]" type="date" value="" />
        <span class="date-separate"> &nbsp;- </span>
        <label class="form-sub-label" for="year_6" id="sublabel_year" style="min-height: 13px;"> Start Date </label>
      </span>

     <span class="form-sub-label-container" style="vertical-align: top">
        <input class="form-textbox" id="month_6" name="lengthOf[1]" type="date" size="2" maxlength="2" value="" />
        <span class="date-separate"> &nbsp;- </span>
        <label class="form-sub-label" for="month_6" id="sublabel_month" style="min-height: 13px;"> Month </label>
      </span>

     <span class="form-sub-label-container" style="vertical-align: top">
        <input class="form-textbox" id="day_6" name="lengthOf[2]" type="date" size="2" maxlength="2" value="" />
        <label class="form-sub-label" for="day_6" id="sublabel_day" style="min-height: 13px;"> Day </label>
      </span>
print\r($LengthOfService)
将显示格式正确的日期yyyy-mm-dd,但在保存日期的列(它是日期类型)中显示0000-00-00

于是,我决定尝试将HTML表单上的输入类型更改为最新,这样只需加载1个POST变量,而不是3个:

          <span class="form-sub-label-container" style="vertical-align: top">
            <input class="form-textbox" id="year_6" name="lengthOf" type="date" value="01/01/2000" />
            <label class="form-sub-label" for="year_6" id="sublabel_year" style="min-height: 13px;"> Start Date </label>
          </span>
这仍然是一个没有火,所以继续阅读,并决定去一个头,并试图格式化它,即使它似乎已经被正确格式化

$LenthOfService = date("Y-m-d", strtotime($_POST['lengthOf']));
仍然以0000-00-00显示在mysql列中,同时
print\r($LengthOfService)
仍然生成正确的格式

仅供参考,以下是我插入mysql的方式:

$insert = "INSERT INTO table (ColumnNames) VALUES ('$Values')";

mysql_query($insert)
   or die (mysql_error());
希望我已经提供了足够的信息,以便有人能够知道我做错了什么,或者我可以尝试其他任何步骤。我也没有收到任何错误。

我测试了:

$LenthOfService = date("Y-m-d", strtotime($_POST['lengthOf']));
$insert = "INSERT INTO table (ColumnNames) VALUES ('$LenthOfService')";
echo $insert;
我得到:

在表(列名称)中插入值('2016-01-06')


我建议您检查并确保没有传递NULL,为了进行调试,请像我刚才那样打印查询。

$values变量的值是什么?它可能与日期的格式有关。•日期-格式YY-MM-DD•日期时间-格式:YYYY-MM-DD HH:MI:SS•时间戳-格式:YYYY-MM-DD HH:MI:SS•年-格式YYYY或YY我最近在构建数据库时遇到类似问题。尝试更改输入以匹配日期格式YYYY-MM-DD,然后查看您得到的结果。@NBPalomino有27个,我只是使用表、列名和$value来表示我编写查询的方式。@Tony我尝试了两种方法,将date POST变量直接加载为YYYY-MM-DD,并使用php格式将其设置为strotime,仍然是相同的结果。@zigwaldo插入查询是什么样子的,回显它!对不起,应该更具体一点,它不允许我编辑。我做了回显,得到了与您相同的输出,它显示了变量的正确值。您的列类型是什么?Date、datetime或Timestamp如果你能显示真实的代码,你就不应该使用mysql\uuuBtwc,你能显示实际的INSERT语句吗?此外,请仔细检查拼写,以确保插入值与数据库列正确匹配。
$insert = "INSERT INTO table (ColumnNames) VALUES ('$Values')";

mysql_query($insert)
   or die (mysql_error());
$LenthOfService = date("Y-m-d", strtotime($_POST['lengthOf']));
$insert = "INSERT INTO table (ColumnNames) VALUES ('$LenthOfService')";
echo $insert;