2015-10-16 36 views
-1

我在这里有这样一小段代码片段:日期保存到MySQL数据库为0000-00-00

// 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' 

请帮我整理出来。

+0

编辑你的问题在变量替换后显示'$ sql'。 –

回答

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_”功能,它不再支持。
  • 您不应将参数直接放入查询字符串中。你应该使用参数化查询。
0

这是因为您正在添加额外的引号。像这样使用它:

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

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