是否可以创建受变量影响的表?
而不是创建标准表。您可以让用户创建自定义表。像注册一样,我可以在数据库下执行CREATE TABLE
,并且表的名称受PHP变量的影响吗?对于表中的字段也一样吗?
例如,表格为$username.table
,表格中的字段为$username_field
?
答案 0 :(得分:3)
为什么呢?我需要用户能够添加他们需要的字段。有点像让他们创建一个onlin表单
然后,您需要设计数据库以实现此目的。不要懒惰并为表单字段创建表。这不仅是安全风险,也不会很好地扩展。这是一个非常糟糕的例子,说明如何设计基于表的系统来处理动态表单生成。
DROP TABLE "main"."form";
CREATE TABLE "form" (
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
PRIMARY KEY ("id")
);
DROP TABLE "main"."form_field";
CREATE TABLE "form_field" (
"form" INTEGER NOT NULL,
"id" INTEGER NOT NULL,
"name" TEXT NOT NULL,
PRIMARY KEY ("form", "id")
);
希望你的想象能带你从这里来。
答案 1 :(得分:2)
这当然是可能的,您只需要撰写格式良好的CREATE TABLE
/ ALTER TABLE
查询。
为了让您的用户能够创建自定义字段,无需自定义/动态创建表格。
请考虑创建一个Custom_Fields
表,该表可以将用户创建的字段保存为行。
e.g。
User Table
| userid | username |
Custom Field Table
| fieldid | userid | field_name | field_value
Get My Custom Fields/Values:
SELECT `field_name`,`field_value` FROM `custom_fields` WHERE `userid`=$myUserId
答案 2 :(得分:2)
作为一个选项,您可以为每个用户创建SQLite数据库,并将其放在用户指定的目录中。
答案 3 :(得分:1)
这不是你应该如何使用数据库。如果您像这样设置数据库,则无法使用查询语言的所有(大多数)函数。
但是要创建表(在mysql中我假设你正在使用它),请使用CREATE TABLE查询。