Php 保存到mysql数据库的日期为0000-00-00

Php 保存到mysql数据库的日期为0000-00-00,php,mysql,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); 我得到这个错误: Y

我这里有一个代码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'

请帮我整理一下。

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

 $data = "'".date('Y-m-d', strtotime(str_replace('-', '/',        $data3)))."'";
echo $data;
 $sql="INSERT INTO assets(dateOfPurchase) VALUES ($data)";
 $result=mysql_query($sql);
你更严重的问题是:

您正在使用不再受支持的mysql函数。 您不应该将参数直接放入查询字符串中。您应该使用参数化查询。
这是因为您添加了额外的引号。像这样使用它:

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

$sql = "INSERT INTO assets(dateOfPurchase) VALUES ('$data')";
编辑问题以在变量替换后显示$sql。