Php oop在数据库中插入日期/时间

Php oop在数据库中插入日期/时间,php,mysql,sql,syntax-error,Php,Mysql,Sql,Syntax Error,我目前正在学习OOP,但我不知道如何将日期插入数据库。 我试过: $time=date('now'); $time=date("timestamp"); $time=date("Y-m-d H:i:s"); $time=date("m/d/y g:i A"); 当我提交时,我收到错误: 您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“2014-03-11 14:18:07”附近使用的正确语法 我想不出来。在我使用之前: $result = mysql_query ("

我目前正在学习OOP,但我不知道如何将日期插入数据库。 我试过:

$time=date('now');
$time=date("timestamp");
$time=date("Y-m-d H:i:s");
$time=date("m/d/y g:i A");
当我提交时,我收到错误:

您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第1行“2014-03-11 14:18:07”附近使用的正确语法

我想不出来。在我使用之前:

$result = mysql_query ("INSERT INTO test (title,url,time) VALUES ('$title','$url',now())");
我尝试使用now(),但似乎不起作用/

更新:

插入:

public function insert($cat,$title,$article,$author,$image,$time)
{
    $sql=mysql_query("INSERT INTO blog_posts(cat, title, article, time, author, image) VALUES('$cat', '$title', '$article', '$author', '$image, '$time'");
    if(!$sql)
    {
        echo mysql_error();
    }
}
进程文件:

  $cat=$_POST['cat'];
    $title=$_POST['title'];
    $article= $_POST['article'];
    $author=$_POST['author'];
    $image=$_POST['image'];
    $time= date( 'Y-m-d H:i:s' );

    $n=new db();
    $n->connect();
    $n->insert($cat,$title,$article,$author,$image,$time);

这段代码与对象无关

第一段代码基本上被覆盖了 因此,它的左边是最新的。你到底想达到什么目的? 你能再发一些代码吗


如果您希望使用mysql面向对象,请使用MySQLi或PDO驱动程序。

您缺少一个引号:

'$author', '$image, '$time'"
               ^^^^^
                HERE

INSERT INTO blog_posts(cat, title, article, time, author, image) VALUES('$cat', '$title', '$article', '$author', '$image', '$time'"
您的参数也有问题

Columns: cat, title, article, time, author, image
Values: '$cat', '$title', '$article', '$author', '$image', '$time'

忘掉mysql_*函数。

如果您想创建经得起未来考验的应用程序,您将使用PDO。这是OOP

$db = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS);
$db->exec('SET NAMES utf8'); // Set this transfer's charset to utf-8

$title = 'here is a title';
$url = 'here is a URL';
$time= date( 'Y-m-d H:i:s' ); // I dont know what type the time column is. (date, datetime, timestamp)-> ??

$prepare = $db->prepare("INSERT INTO test (title, url, time) VALUES (:title, :url, :time)");
$prepare->bindParam(':title', $title);
$prepare->bindParam(':url', $url);
$prepare->bindParam(':time', $time);

$prepare->execute(); // Run the query, in this case, insert!
如果时间列的类型为date或datetime,则可以使用NOW()CURDATE()如下所示:

$prepare = $db->prepare("INSERT INTO test (title, url, time) VALUES (:title, :url, NOW())");

这与oop无关,它是一个mysql的东西。时间列是什么样子的?它是什么类型的?在这种情况下,您可以在查询中直接使用NOW(),这应该是一个注释。这不是一个答案。问题是,我目前无法发表评论,我正在询问更多信息,以便尝试解决他的问题:(你是否验证了缺少的报价存在?我确认了!仍然没有运气。