0

如何使用变量中的数据创建同名表?

如果有一个名为 $user_data 的变量,我们访问了 ['username'] 值,如何使用它来创建具有相同值的数据库表,以便每个用户在数据库中都可以拥有自己的表,并且它被命名为与他们在数据库中的用户名相同。

这是链接表的正确方法还是布局数据库数据的最佳方法。表和数据库如何通过共享数据连接?

4

3 回答 3

0

这是一个非常糟糕的主意。在SQL Antipatterns书中,实际上有一整章“Metadata Tribbles”关于这个主题(顺便说一句,我的建议,明白了)。

首先,对于用户而言,这将打开您的应用程序以应对额外的注入威胁。简单的一阶和二阶 sql 注入(在此处此处阅读回合)。这会降低您索引数据的能力。

相反,您应该将所有用户详细信息保存在一个(或两个,如果它是一个重度使用站点)表中,并利用外键将用户链接到随后制作的其他内容。

于 2012-06-13T14:40:41.427 回答
0

这些方面的东西:

mysql_query("CREATE TABLE {$user_data['username']}(id INT NOT NULL AUTO_INCREMENT);  
于 2012-06-11T05:27:50.653 回答
0

您可以查询表的创建。

mysql_connect("localhost", "bill", "3pD]gks*dg");
mysql_select_db("user_db");
mysql_query("CREATE TABLE ".$user_data['username']."(some_text varchar(15), some_int int)");

在查询的括号内,您应该放置所需的表结构。

于 2012-06-11T05:28:05.277 回答