我在同一个域上有 2 个站点(example.com、site2.example.com),我试图让它们都从主站点(example.com)引用相同的用户表等,以便通过单点登录两个都。
我设置了 2 个数据库 - 每个数据库一个 - 并设置了一个用户,该用户可以使用所有必需的权限访问这两个数据库。我在第二个站点中更改了我的 settings.php,如下所示(以及许多变体):
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'database_site2',
'username' => 'multi_username',
'password' => 'multi_password',
'host' => 'localhost',
'prefix' => array(
'default' => 'database_site2.',
'users' => 'database_main_site.',
'sessions' => 'database_main_site.',
'role' => 'database_main_site.',
'authmap' => 'database_main_site.',
),
);
不幸的是,在进行此更改后尝试访问 site2 时,我收到以下错误消息:
关闭函数中抛出未捕获的异常。
PDOException: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“-amalga-01.semaphore WHERE (value = >'1471293032527ac89955a330.73110726')' 附近使用正确的语法:DELETE FROM {semaphore} >WHERE (value = :db_condition_placeholder_0) ; lock_release_all() 中的数组( [:db_condition_placeholder_0] => >1471293032527ac89955a330.73110726 )(>/home/sites/amalgamart.co.uk/public_html/exampletown/includes/lock.inc 的第 269 行)。
如果有人能够帮助我解决这个问题,我将永远感激不尽!
谢谢!