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

时间:2014-03-11 14:25:29

标签: 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服务器版本对应的手册,以便在#2014; 2014-03-11 14:18:07'' 2014-03-11 14:18:07''第1行

我无法解决这个问题。在我使用之前:

$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();
    }
}

proccess文件:

  $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);

3 个答案:

答案 0 :(得分:1)

你错过了一句话:

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

答案 1 :(得分:0)

忘掉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!

如果时间列的类型为日期或日期时间,则可以使用 NOW() CURDATE(),如下所示:

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

答案 2 :(得分:-1)

这与此代码中的对象无关。

并且第一段代码完全覆盖了所有代码 所以它留下了最新的。你究竟想要实现什么目标? 你可以发布更多的代码吗?

如果你想使用面向mysql OBJECT,请使用MySQLi或PDO驱动程序。