通过表单将内容输入MySQL数据库

时间:2010-04-27 16:37:33

标签: php mysql phpmyadmin

我一直在努力创建一个将内容提交到我的数据库的表单,但我决定不使用下拉菜单来选择日期而是使用文本字段。我想知道我需要对表格创建文件做出哪些更改。

<?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')附近使用正确的语法

5 个答案:

答案 0 :(得分:2)

TIMESTAMP是一个保留的MySQL字。如果您希望将其用作字段名称,则需要在其周围放置反引号。但是,我建议更改它。

您还应将其设为DATE或DATETIME字段,因为这是您实际存储在其中的数据类型。

答案 1 :(得分:1)

您不必对脚本的这一部分进行任何更改。您需要的是通过表单中的文本输入检索用户日期输入,并将其转换为(如果其格式有效)到时间戳。

编辑:除非您真的希望时间戳是字符串或日期格式的日期,否则您必须将int更改为varchar(9)(包含xxxx-xx-xx或您喜欢的任何格式)或使用日期或日期时间

答案 2 :(得分:1)

您可能应该使用MySQL标准DATETIME类型。获取文本字段的日期内容并将其提供给PHP的strtotimedate函数,以使其格式与MySQL在DATETIME对象中查找的内容相匹配。

答案 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