【发布时间】:2016-08-06 02:05:21
【问题描述】:
我有两个网站,我想让它们在 MySQL 中使用相同的用户表。
一个站点没有用户,另一个站点有 20,000 多个用户。我们将没有用户的站点称为 Site1,将具有 20k 用户的站点称为 site2。
我希望在 site1 或 site2 上注册的人在两个网站上都拥有相同的帐户,而无需设置两个帐户。
两个站点都对 users 表使用完全相同的数据结构,因此如果我可以在 site1 上为 site2 使用 users 表,那么两个站点都可以使用同一个表。也就是说,在site1上注册的用户,也会自动在site2上拥有一个帐号。
看似简单的方法是将用户表从站点 1 导入到站点 2,现在它被复制了。然而,这并不容易。
site1 有固定用户注册,每天 30 到 50 个;一旦我制定了这个新策略,它将是自我营销,因此我还将为 site2 吸引用户。
如您所见,逐个导入新用户是不可行的,每天导入用户也不合理。
所以我想做的是让site2简单地使用来自site1的外部数据库。
请注意,site1 和 site2 都在同一个服务器上,在同一个 cpanel 和同一个 phpmyadmin 中。所以我们不必担心远程访问另一台服务器,因为它们在同一台服务器上。但是,它们具有不同的数据库名称(当然)和不同的数据库用户/密码。
此外,我无法将数据库合并到一个数据库中,因为这些表都具有相同的名称但数据不同(两个不同的站点但使用相同的数据库系统)。否则,对 site2 的更改也会更改 site1,反之亦然,这是我不想要的,因为它们是两个不同的网站。
那么,我怎样才能允许 site2 只使用来自 site1 数据库的一个外部(但在同一台服务器上)表(用户表)?
【问题讨论】:
-
是的,你可以做到。从站点 1,如果用户正在登录,则在站点 1 数据库中检查用户是否在数据库中,如果是,则允许用户登录。如果不可用,则创建另一个 mysql_pconnect ,它将返回新的数据库连接,并将其存储在 $conn2 变量中。使用这个新的连接变量,您现在可以签入 site2 db。如果用户可用,让他登录。如果用户来自 site2,则来自 site2 的相同过程。
标签: php mysql database external