$driver_options[PDO::ATTR_PERSISTENT] = true;
$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass, $driver_options);
Когда вы делаете выше, соединение PDO помещается в «пул постоянных соединений», но цель пула состоит не в кэшировании базы данных , а в выделении памяти, аутентификации иподготовить фундамент. То, что - это то, что использует время (не так уж много).
Все, что вы предоставляете в вызове new PDO()
, равно LOST .
И если у вас есть две базы данных с одинаковыми учетными данными, вы можете заменить их случайным образом - как вы уже видели.
Итак, не не указывает БД в операторе new PDO
, но используйте оператор SQL USE databasename
, как только новый объект PDO будет готов.
Или, как рекомендует PankajKumar, установите разные учетные данные для двух БД.Тогда ошибочное попадание в кэш не произойдет (но, как правило, повторяется, как только кто-то повторно использует те же учетные данные, такие как 'ubuntu / ubuntu' или 'root /').