我试图把一个帖子的时间到我的数据库表,但我不能让它工作。也许有人能解释一下我做错了什么。
这是我的代码:
<?php
if (isset($_POST['upload_message'])) {
$message_title = $_POST['message_title'];
$message_content = $_POST['message_content'];
}
$table_name = "posts";
$add_query = "INSERT INTO $table_name (name, content, date) VALUES ('$message_title', '$message_content', 'SELECT NOW()')";
if (mysql_query($add_query)) { //executes query and error check
echo "het artikel staat in de database";
}
else { //error message
echo "fout bij het toevoegen" . "<br />" . mysql_error();
}
?>
,这是我的db表的屏幕截图:http://gyazo.com/17019f143eab6e5818752c33824bde29
当我运行mysql_error是得到以下消息:
错误的datetime值:'SELECT NOW()' for column 'date' at row 1
你不需要SELECT NOW()
,只需要NOW()
$add_query = "INSERT INTO $table_name (name, content, date)
VALUES ('$message_title', '$message_content', NOW())";
您应该使用使用mysqli_
或PDO
绑定参数的准备语句。
NOW()是一个mysql函数,你不需要"select it",只需要调用它。
将"SELECT NOW()"替换为"NOW()"。
INSERT INTO $table_name (name, content, date) VALUES ('$message_title', '$message_content', 'NOW()')
或者您可以使用CURRENT_TIMESTAMP
INSERT INTO $table_name (name, content, date) VALUES ('$message_title', '$message_content', CURRENT_TIMESTAMP);
Mysql_query自PHP 5.5.0起已弃用。
使用PDO或mysql !
和保护您的代码,我们可以做注入sql。