我使用PHP的PDO连接到MySQL,如下所示:
$driver_options[PDO::ATTR_PERSISTENT] = true;
$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass, $driver_options);
Run Code Online (Sandbox Code Playgroud)
我在这台服务器上有2个数据库(让我们称之为database_A和database_B),有时会发生非常奇怪的事情.即使$ db_name 100%设置为'database_A',也会连接到'database_B'.
它发生在完全随机的状态.我可以再次运行相同的脚本10次,一切都很好.第11次这个问题发生了.
我永远不会指望这种情况发生.它让我很头疼.有人能解释一下吗?并且是不使用持久性的唯一解决方案?
PDO::ATTR_PERSISTENT 受到部分支持,并且取决于您使用的 PHP 版本和 SQL 服务器。我建议永远不要在驱动器选项中将此属性设置为 true,因为它不稳定。
我能够复制您的情况,并且发现 ODBC 连接池层正在缓存连接,并且由于您的连接被设置为持久连接,因此每次我建立新连接时都会重置缓存。
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |