【发布时间】:2018-10-29 19:15:17
【问题描述】:
我使用 PHP 的 PDO 连接到 MySQL,如下所示:
$driver_options[PDO::ATTR_PERSISTENT] = true;
$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass, $driver_options);
我在这台服务器上有 2 个数据库(我们称它们为 database_A 和 database_B),有时会发生非常奇怪的事情。即使 $db_name 100% 设置为“database_A”,也会连接到“database_B”。
这是完全随机的。我可以再次运行相同的脚本 10 次,一切都很好。第 11 次出现此问题。
我从没想过会发生这种情况。它给了我a lot of headache。谁能解释一下?不使用持久性的唯一解决方案是什么?
【问题讨论】:
-
可能是您之前为某些测试或类似配置配置了 database_B 吗?那么这可能是一个缓存问题...
-
不要问我为什么以及如何,但我曾经听说过在
mysql:和hostname之间放置一个空格,比如mysql: host来解决连接问题。 -
是的 --> php.net/manual/en/pdo.connections.php Example #4 Notes
-
@PeterM 不幸的是,这个技巧对我不起作用。
-
为不同的数据库设置并尝试不同的凭据。