Php 通过表单将内容输入MySQL数据库
我一直在努力创建一个表单,将内容提交到我的数据库中,但我决定使用文本字段,而不是使用下拉菜单来选择日期。我想知道我需要对我的表创建文件做什么更改Php 通过表单将内容输入MySQL数据库,php,mysql,phpmyadmin,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) NO
<?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.";
}
?>
您不必对脚本的该部分进行任何更改。您需要的是通过表单中的文本输入检索用户日期输入,并将其(如果格式有效)转换为时间戳
编辑:除非您确实希望时间戳是字符串或日期格式的日期,否则您必须将int更改为varchar(9)(包含xxxx-xx-xx或您喜欢的任何格式)或使用date或datetime,您不必对脚本的该部分进行任何更改。您需要的是通过表单中的文本输入检索用户日期输入,并将其(如果格式有效)转换为时间戳
编辑:除非您确实希望时间戳是字符串或日期格式的日期,否则您必须将int更改为varchar(9)(包含xxxx-xx-xx或您喜欢的任何格式)或使用date或datetime,您可能应该使用MySQL标准datetime类型。获取日期的文本字段内容,并将其提供给PHP和函数,以使其格式与MySQL在DATETIME对象中查找的内容相匹配。对此,您可能应该使用MySQL标准DATETIME类型。获取某个日期的文本字段内容,并将其提供给PHP和函数,以使其格式与MySQL在DATETIME对象中查找的内容相匹配。您不必修改任何内容。只需确保正确解析用户输入,并使用创建时间戳即可。您不必修改任何内容。只需确保正确解析用户输入并使用创建时间戳。如果要在每次插入行时将当前时间戳输入时间戳
字段,可以将其定义更改为:
time_stamp TIMESTAMP NOIT NULL DEFAULT CURRENT_TIMESTAMP
这样,您就不需要为时间戳
字段进行显式插入
编辑:
如果要编辑表单中的字段,可以使用上面的def of time_stamp字段,并在执行插入时包含time_stamp
值。其格式应为:
'YYYY-MM-DD HH:MM:SS'
注意:timestamp
是MySQL保留字。我已将其重命名为time\u stamp
如果您想在每次插入行时将当前时间戳输入time\u stamp
字段,可以将其定义更改为:
time_stamp TIMESTAMP NOIT NULL DEFAULT CURRENT_TIMESTAMP
这样,您就不需要为时间戳
字段进行显式插入
编辑:
如果要编辑表单中的字段,可以使用上面的def of time_stamp字段,并在执行插入时包含time_stamp
值。其格式应为:
'YYYY-MM-DD HH:MM:SS'
注意:timestamp
是MySQL保留字。我已将其重命名为time\u stamp
时间戳是一个保留的MySQL字。如果希望将其用作字段名,则需要在其周围放置反勾号。但是,我建议更改它
您还应该将其设置为日期或日期时间字段,因为这是您实际存储在其中的数据类型。时间戳是一个保留的MySQL字。如果希望将其用作字段名,则需要在其周围放置反勾号。但是,我建议更改它
您还应该将其设置为日期或日期时间字段,因为这是您实际存储在其中的数据类型。创建此表后,我尝试使用此表单,但收到以下错误消息:无法插入到表中。在php_blog(时间戳、标题、条目等)值('1270138860'、'ggg'、'ggg')中插入SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以了解在第1行使用near')值('1270138860','test','test')的正确语法。嗯,时间戳太小(选择32位)并且(不确定,我不是MySQL用户),它可能是一个保留名称。我在创建此表后尝试使用该表单,但收到以下错误消息:无法插入到表php\u blog中。在php_blog(时间戳、标题、条目等)值('1270138860'、'ggg'、'ggg')中插入SQL语法错误;请查看与您的MySQL服务器版本对应的手册,以了解在第1行使用near')值('1270138860','test','test')的正确语法。好的,时间戳太小(选择32位),并且(不确定,我不是MySQL用户),它可能是一个保留名称。我将如何执行此操作?请阅读手册页面了解strtotime和date。一切都差不多摆在那里了。从文本字段中读入值,将其传递给strotime以获取php时间戳,使用类似于MySQL期望的格式字符串将该时间戳提供给date(非常确定YYYY-MM-DD HH-MM-SS可以工作)然后使用UPDATE或INSERT语句将该值保存到数据库中。如何执行此操作?请阅读手册页面中的strottime和date。一切都差不多摆在那里了。从文本字段中读入值,将其传递给strotime以获取php时间戳,使用类似于MySQL期望的格式字符串将该时间戳提供给date(非常确定YYYY-MM-DD HH-MM-SS可以工作)然后用UPDATE或INSERT语句将该值保存到数据库中。如果你的意思是我不需要通过表单编辑它,我更希望能够通过表单编辑。你能给我解释一下吗。我不是最擅长编码的人,所以我不理解大多数的“Technobable”。如果你的意思是我不需要通过表单编辑它,我更希望能够通过表单编辑。你能给我解释一下吗。我不是最擅长编码的人,所以我不理解大多数“Technobable”。我使用了这种方法,但尽管如此,我还是不断收到相同的错误消息: