我正在建立一个拥有多家公司多个用户的网站。每个公司都会获得具有相同表的同一数据库的副本。唯一的区别是数据库名称。我希望每个用户只能访问分配给他们公司的数据库。
我需要想出一种基于用户登录选择数据库的方法。是否可以使用users表中的session var作为数据库名称?...
$dbCon = new mysqli('localhost', 'root', '', $_SESSION['databaseName']);
也许是一个cookie?或者我是在看整件事。任何输入都会很棒。我还在学习。感谢
答案 0 :(得分:1)
我的建议是选择一个数据库作为“登录”数据库,该数据库包含表中的所有用户帐户。然后在要验证其登录的用户表中添加一列。您可以在该列中存储公司或“已分配的数据库名称”。通过身份验证后,您可以关闭数据库连接并使用正确分配的数据库打开新连接。
答案 1 :(得分:0)
您可以为用户登录设置以下架构
LoginTable :(username,password,...,company_id)
公司:(company_id,....,dbname)
因此,一旦用户登录,他就可以从公司表中选择与公司ID相对应的数据库。查询可以由自然加入公司和LoginTable.Hence在单个命令中编写,在检索dbname后,您可以将其存储在会话变量中以供进一步使用。
我希望你能理解。