如何创建一个表来插入表单数据?在本教程中,我将解释如何使用 MySQL 执行此操作。
在之前的教程中,我们创建了一个表单来收集数据(如果您还没有有了这个)设置了本地开发环境(使用 PHP、MySQL 和 Apache)。
我们现在希望能够将表单数据插入到 Web 服务器上的数据库中。这样我们以后就可以随时检索这些数据。
数据库是数据的集合。它的组织方式使得可以快速搜索以检索特定数据。 MySQL 可能是最流行的数据库管理系统。 MySQL 数据库包含一个或多个表。表中的数据按记录(=行)组织。每条记录中都有几个字段(= 列)。我们可以使用所谓的查询来创建数据库、表、检索数据等。MySQL 中的 SQL 代表结构化查询语言。在本教程中,您将学习该语言的基础知识。
本教程假设您已经在本地计算机上设置了 PHP 和 MySQL 的开发环境或知道如何执行此操作。如果没有,我建议您首先阅读如何设置本地开发环境的教程
要创建新数据库,您需要:
您现在应该看到新数据库的名称出现在“创建数据库”下表和左侧面板中。
要在数据库中创建表,您:
SQL - 查询创建表
|
如果一切顺利,您应该会看到左侧面板中数据库名称下方列出的表名称(上面代码中的“members”)。
您可以看到/单击“结构”选项卡检查刚刚创建的表的结构;然后单击表的名称(例如“成员”);然后再次单击“结构”选项卡(现在显示在“浏览”选项卡右侧)。
第一列/字段与我们之前创建的表单,但包含变量“id”。通过此字段,我们可以确保表中的每条记录都是唯一的。
名为“id”的列具有以下特征:
INT UNSIGNEDINT 数据类型使该列采用整数。无符号表示不允许有负值。
NOT NULL 使用 NOT NULL 我们确保每一列都有一个值。
AUTO_INCRMENT 使 MySQL 在每一行中为该列设置唯一值。默认情况下,AUTO_INCRMENT的起始值为1,每一条新记录都会加1。这样我们就可以保证每条记录都有唯一的值。
KEY自动增量列可用作键,因为您将倾向于根据此列搜索行。当您查看结构信息时,您会注意到该字段的键符号具有不同的颜色。
“id”列中的每个条目现在都有一个唯一的编号,第一个从 1 开始,其他人从那里向上计数。每当插入新行时,其“id”列将自动按顺序给出下一个数字。
我们使用以下方式定义了表中的字段各种 SQL 数据类型:
VARCHAR (n)VARCHAR 数据类型接受文本字符串(术语 VARCHAR 代表可变长度字符字符串)。对于 VARCHAR 数据类型,表中字段的大小有限制。该限制由(n)设定。正如您所看到的,我有时将此限制设置为 255 或 128。
对于此表,我没有使用数据类型 CHAR。但最好了解这种数据类型以及它与 VARCHAR 类型的区别。 CHAR 和 VARCHAR 都接受文本字符串并对字段的大小施加限制。这两种数据类型之间的区别在于,对于 CHAR,每个字符串都具有指定的大小。如果我使用 CHAR(6) 表示性别,则字符串“male”将用(两个)空格填充。 VARCHAR 字段不会填充文本;它可以改变字段的大小以适应插入的文本。但 VARCHAR 需要少量开销来跟踪每个值的大小。因此,如果所有记录中的大小相似,则 CHAR 的效率稍高,而如果大小变化很大且变大,则 VARCHAR 的效率更高。此外,开销导致访问 VARCHAR 数据比访问 CHAR 数据稍慢。
除了 VARCHAR 和 CHAR,我们在创建表时还可以使用 TEXT 数据类型。对于名字等,您可能会想使用数据类型 TEXT。但是,使用 TEXT 数据类型,您将永远不会在字段中搜索超过一定数量的前导字符。因为用户还希望能够搜索名称的一部分,所以我使用了 VARCHAR 类型。
DATE 使用数据类型 DATE,输入的格式将类似于“yyyy-mm-dd”。您会注意到这与表单 (mm/dd/yyyy) 中的格式略有不同。当您使用表单将数据插入数据库并检查结果时,您会发现这不会造成问题,并且表单日期将正确转换为 SQL 格式。
INTINT 代表整数。当您的数据由数字(例如电话号码)组成时,您可能会想使用 INT 数据类型。我的建议是仅对主键和要进行数学运算(例如加法、乘法)的数据使用 INT 数据类型。例如,电话号码不能与另一个数字相乘。邮政编码也是如此。这就是为什么我们将它们定义为 VARCHAR 数据类型。
您可能已经注意到,我们在创建时“忘记”了一个字段(“区域”)桌子。这让我可以解释如何向现有表添加字段/列。
转到显示表结构的选项卡。在结构下方,您将看到向表格添加一(或多)列的选项。
然后您会看到一个窗口,要求您定义字段/列:
现在我们的数据库/表已准备就绪,我们可以开始编写 PHP 脚本,该脚本将从表单发送数据到 MySQL 数据库。