我一直在努力创建一个将内容提交到我的数据库的表单,但我决定不使用下拉菜单来选择日期而是使用文本字段。我想知道我需要对表格创建文件做出哪些更改。
<?php mysql_connect ('localhost', 'root', 'root') ;
mysql_select_db ('tmlblog');
$sql = "CREATE TABLE php_blog (
id int(20) NOT NULL auto_increment,
timestamp int(20) NOT NULL,
title varchar(255) NOT NULL,
entry longtext NOT NULL,
PRIMARY KEY (id)
)";
$result = mysql_query($sql) or print ("Can't create the table 'php_blog' in the database.<br />" . $sql . "<br />" . mysql_error());
mysql_close();
if ($result != false) {
echo "Table 'php_blog' was successfully created.";
}
?>
这是我需要编辑以通过文本字段输入的时间戳。目前正在通过该方法输入标题和条目。
每当我使用表单更新数据库时,都会收到以下错误消息:
无法插入表php_blog。 INSERT INTO php_blog(time_stamp,title,entry,)VALUES('1270140960','kjkkj','jkjkjk') 您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''VALUES('1270140960','kjkkj','jkjkjk')附近使用正确的语法
答案 0 :(得分:2)
TIMESTAMP是一个保留的MySQL字。如果您希望将其用作字段名称,则需要在其周围放置反引号。但是,我建议更改它。
您还应将其设为DATE或DATETIME字段,因为这是您实际存储在其中的数据类型。
答案 1 :(得分:1)
您不必对脚本的这一部分进行任何更改。您需要的是通过表单中的文本输入检索用户日期输入,并将其转换为(如果其格式有效)到时间戳。
编辑:除非您真的希望时间戳是字符串或日期格式的日期,否则您必须将int更改为varchar(9)(包含xxxx-xx-xx或您喜欢的任何格式)或使用日期或日期时间
答案 2 :(得分:1)
答案 3 :(得分:1)
你不应该修改任何东西。只需确保正确解析用户的输入并使用mktime创建时间戳。
答案 4 :(得分:0)
如果要在每次插入行时在time_stamp
字段中输入当前时间戳,可以将其定义更改为:
time_stamp TIMESTAMP NOIT NULL DEFAULT CURRENT_TIMESTAMP
这样您就不需要为time_stamp
字段显式插入。
修改强>
如果要编辑表单中的字段,可以使用上面的time of time_stamp字段,并在执行time_stamp
时包含insert
值。它应采用以下格式:
'YYYY-MM-DD HH:MM:SS'
注意:timestamp
是MySQL保留字。我已将其重命名为time_stamp
。