Php 设置多个mysql数据库

Php 设置多个mysql数据库,php,mysql,saas,Php,Mysql,Saas,我有一个Mysql/PHP应用程序。我想把它卖掉。我正在考虑一家拥有多个数据库的托管公司。我想要一个网页,他们登录,我带他们到他们的数据库。我将有许多具有相同结构的数据库。我需要一种方法来切换到该文件夹,我可能会修改一些代码,如css和操作他们的数据库。 我可以使用主表进行登录,但如何连接到他们的数据库?我担心安全问题。 示例:假设我有3个客户。A、B、C 我在apache服务器上设置了3个文件夹,在那里复制代码,设置唯一的数据库名称,如new_db_a、new_db_b、new_db_c。 现

我有一个Mysql/PHP应用程序。我想把它卖掉。我正在考虑一家拥有多个数据库的托管公司。我想要一个网页,他们登录,我带他们到他们的数据库。我将有许多具有相同结构的数据库。我需要一种方法来切换到该文件夹,我可能会修改一些代码,如css和操作他们的数据库。 我可以使用主表进行登录,但如何连接到他们的数据库?我担心安全问题。 示例:假设我有3个客户。A、B、C 我在apache服务器上设置了3个文件夹,在那里复制代码,设置唯一的数据库名称,如new_db_a、new_db_b、new_db_c。 现在,如果我在一个内存变量中这样做,当一个用户登录时,它将带他到他的位置。他可以看到url,可以很容易地替换另一封信并运行另一个公司数据库

我愿意使用Perl、PHP或其他任何工具来实现这一点。
最好的方法是什么

这是一个典型的抽象问题。基本上,您不仅需要从应用程序中提取数据库选择过程,还需要从选择屏幕中提取数据库选择过程

把它想象成“问题空间”。每个应用程序都有自己的数据库,然后您还有一个,即客户登录系统。为此使用另一个不同的数据库没有什么错。与每个登录相关联的是数据库连接信息。这意味着您可以将数据库信息存储在PHP会话中,同时还可以存储用户登录以及他们作为谁登录的事实

现在,您的另一个应用程序需要学习其数据库层[1]如何在会话中查找数据库信息。事实上,如果您存储的不仅仅是数据库名称,还有服务器名称、登录名和密码,那么您可以将一些客户放在同一个数据库服务器上,将一些客户放在一起放在另一个数据库服务器上,等等。您只需获得正确的MySQL权限,这并不难

不过,这种美中不足的地方可能是,如果所选应用程序决定控制PHP会话信息本身。有几种方法可以解决这个问题。一种是将连接到正确数据库所需的内容复制到自己的会话中。第二种方法是让选择会话单独并可能手动地进行会话管理。但是不要将数据库信息存储在cookie中。这不仅可以由确定的用户更改,而且您正在将安全性让给一个不安全的位置—浏览器


[1] 你有一个合适的数据库层,不是吗?我的意思是,你所有的mysql_查询调用都有一个处理程序,可以是定制的,也可以是PDO之类的。

我把你的问题从sas重新标记到了saas,因为我想你说的是软件即服务saas。如果我错了,请留下评论,我会把它改回来。