日期保存到mysql数据库as 0000-00-00

时间:2015-10-16 12:48:31

标签: php mysql

我在这里有这个代码snipet:

    // Insert data into mysql 
     $data = "'".date('Y-m-d', strtotime(str_replace('-', '/', $data3)))."'";
     echo $data;
     $sql="INSERT INTO assets(dateOfPurchase) VALUES ('$data')";
     $result=mysql_query($sql);

我收到此错误:

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 '2015-10-11'

请帮我解决。

2 个答案:

答案 0 :(得分:2)

您的直接问题是您在查询中出现两次单引号,一次出现在$date的定义中。您只需要包含一次:

 $data = "'".date('Y-m-d', strtotime(str_replace('-', '/',        $data3)))."'";
echo $data;
 $sql="INSERT INTO assets(dateOfPurchase) VALUES ($data)";
 $result=mysql_query($sql);

你更严重的问题是:

  • 你正在使用" mysql _"功能,不再受支持。
  • 您不应将参数直接放入查询字符串中。您应该使用参数化查询。

答案 1 :(得分:0)

那是因为你要添加额外的报价。像这样使用它:

$data = date('Y-m-d', strtotime(str_replace('-', '/',        $data3)));

$sql = "INSERT INTO assets(dateOfPurchase) VALUES ('$data')";