PHP / MYSQL日期不会插入

时间:2012-06-08 13:52:32

标签: php mysql date

我正在尝试将变量中的日期插入到mysql数据库中。列的格式为日期,列中包含日期。该列中的日期看起来像yyyy-mm-dd

我的日期变量也看起来像这样,但它不会将日期插入到列中,即使我只是白屏也不会出错。

<?php
//here is the code to insert this does not work
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep, INV_ID)
VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."' )") or die("load1 -" . mysql_error());


<?php 
//this does work but it does not have the date.
mysql_query("INSERT INTO `invoices` (account_id, sales_rep, INV_ID)
    VALUES ('".$acctid."', '".$row['8']."', '".$invid."')") or die("load1 -" . mysql_error());

不确定问题是什么。我在屏幕上显示了$ date变量,看起来很好。 2012-06-01

所以我不确定为什么它不能将其插入数据库。

4 个答案:

答案 0 :(得分:4)

您的错误是您在此行中有一个解析错误:

VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."' )")

您的服务器已关闭display_errors,因此您没有看到致命的错误输出。

您可以通过添加连接运算符(.)来修复它,如下所示:

VALUES ('".$acctid."', '".$date."','".$row['8']."', '".$invid."' )")

此外,在将来,我发现编写查询更具可读性:

VALUES ('{$acctid}', '{$date}', '{$row['8']}', '{$invid}')

如果您不想使用插值(这是上面使用的字符串“注入”的方法),您仍然可以使用连接(您的原始方法)但使用空格使其更具可读性(并且更容易在您之前找到语法错​​误尝试执行它):

"VALUES ('" . $acctid . "', '" . $date . "' , '" . $row['8'] . "', '" . $invid . "')";

在所有仇敌回避建议插值连接之前,让我通过this tweet向你推荐@rasmus,说明插值实际上比连接更快,这些天。

答案 1 :(得分:1)

<?php
//here is the code to insert this does not work
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep,   INV_ID) VALUES ('".$acctid."', '".$date"','".$row['8']."', '".$invid."' )") or die("load1 -" .     mysql_error());
?>

错误是:

PHP Parse error:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING on line 1

.之后没有$date

答案 2 :(得分:0)

尝试使用new \DateTime('yyyy-mm-dd')

<?php
//here is the code to insert this does not work
mysql_query("INSERT INTO `invoices` (account_id, purchased_date, sales_rep, INV_ID)
VALUES ('".$acctid."', '".new \DateTime('yyyy-mm-dd')."','".$row['8']."', '".$invid."' )") or die("load1 -" . mysql_error());

答案 3 :(得分:-1)

您可以使用

mysql_query("INSERT INTO `vipanda2`.`invoices` (account_id, purchased_date, sales_rep, INV_ID)
VALUES ('".$acctid."', '".date('Y-m-d',mktime(0, 0, 0, date("m", $date), date("d", $date), date("Y", $date)))."','".$row['8']."', '".$invid."' )") or die("load1 -" . mysql_error());