在用户注册时创建 MySQL 表


Creating a MySQL table upon user registration

我正在开发一个网站,为用户收集和存储信息。

我需要在注册时为每个用户创建一个特定的表,以存储他们使用网站搜索的信息。创建的表将以新注册用户的用户名命名。

然后,当用户登录并运行搜索时,收集的数据将使用MySQL插入查询存储在数据库中,其中表名是包含登录用户用户名的变量,该用户名也将是表名。

是一名业余开发人员,到处寻找试图找到解决方案,但我似乎找不到任何与我的问题相似的东西。

提前感谢您的任何帮助!

动态创建表比它的价值更麻烦,并且使用任何 SQL 数据库都会逆流而上。

没有找到有关您提到的方法的任何文档的原因是,这个问题通常(几乎无一例外)最好地解决,方法是将所有数据放在一个或多个表中,并包括一列来指定与哪个实体(用户)相关联该行。在您的情况下,这可能是电子邮件地址、用户名或只是一个序列号。

例如

 | user_id | email   | first_name   | last_name   | fave_color   |
 -         -         -              -             -              -
 |       1 | "a@b.c" | "anton"      | "aardvark"  | "red"        |
 |       2 | "b@c.d" | "miles"      | "o'brien"   | "infrared"   |
 |     ... |         |              |             |              |

首先取用户的名字,如下所示:

$fullname="$fname"."_"."$lname";

然后,编写如下所示的查询以创建该名称的表

$sql="CREATE TABLE $fullname(ALL THE COLLUMNS YOU WANT TO CREATE)";
$result1=mysql_query($sql, $db_link);

此查询来自我的项目。在万普服务器中工作正常。