Мне было поручено поддерживать доисторическое приложение PHP, которое использует некоторый класс phpDB, написанный Джо Тонгом, последний раз обновленный в 1999 году. Это приложение подключается к двум различным базам данных на одном сервере, получая некоторые данные из одной и другой извторой.
Теперь ограничение mysql_connect
состоит в том, что он использует тот же ресурс соединения для новых соединений.Поэтому, если я использую следующий код:
$db1 = new phpDB()->connect(/* db1data, database 'one' */);
$db2 = new phpDB()->connect(/* db2data, database 'one' */);
$data = $db1->query($somequery);
РЕДАКТИРОВАТЬ ПРИМЕЧАНИЕ: new phbDB()->connect
просто устанавливает некоторые внутренние значения и выполняет стандартные mysql_connect
без параметра $new_link
.
Теперь проблема в том, что $query
- это , выполняемый над базой данных два , потому что он переписал предыдущее соединение.
Эту проблему можно решить, используя true
в качестве четвертогопараметр в mysql_connect
.Дело в том, что я бы предпочел , а не что-то переписать в 12-летней библиотеке (из-за страха того, как это отреагирует на живом сервере), а также на четвертом параметре на живом сервере.Однако, поскольку я не являлся гуру сервера, я не смог найти правильную директиву в конфигурации сервера, чтобы включить мою локальную конфигурацию MAMP, чтобы быть ближе к эмуляции рабочей среды.
Может кто-нибудь мне помочь?Спасибо.
РЕДАКТИРОВАТЬ : сама оболочка:
phpDB.php - обертка db - http://scrp.at/wd
phpDB-mysql.php - MySQL конкретный код - http://scrp.at/we