Использование PHP PDO в существующем (устаревшем) приложении.Несколько соединений SQL? - PullRequest
0 голосов
/ 27 января 2011

Мне было поручено написать несколько расширений для существующего устаревшего приложения PHP.Оригинальное приложение ... эм ... совсем плохо.Это 125 тыс. Строк спагетти-кода, усеянного необработанными операторами SQL и использующими функции mysql_*.Каждый день я нахожу вещи, которые действительно принадлежат TheDailyWTF.Пока что я планирую сохранить свой новый код как можно более отдельно от прежнего кода.Для доступа к базе данных я планирую использовать Idiorm и Paris , две действительно симпатичные маленькие библиотеки, построенные поверх PDO.

Но как я буду обрабатывать соединения с базой данных?Или как PHP обрабатывает их внутренне?Я беспокоюсь о том, что при использовании PDO при каждом вызове страницы будут открываться два отдельных соединения с базой данных.Один из легального вызова mysql_connect() и один из PDO.Это правда, или PHP просто будет использовать одно и то же соединение в фоновом режиме?Есть ли способ заставить PDO и устаревшие функции mysql_* использовать одно и то же соединение с базой данных?Имеет ли это вообще какое-то значение? Я открываю два соединения при каждой загрузке страницы (примечание: приложение не использует транзакции)?

Я немного сомневаюсь в том, чтобы просмотреть эти 125К строк кода спагетти и заменить всеmysql_* работает с чем-то другим.Я хочу как можно меньше прикоснуться к исходному коду и не ломать себе голову.

Заранее благодарен за любой совет.

Ответы [ 2 ]

2 голосов
/ 27 января 2011

У вас будет два соединения, но это ничего не сломает.Посмотрите ответ этого человека, задающего тот же вопрос:

Получение соединения PHP PDO из mysql_connect ()?

0 голосов
/ 27 января 2011

Эти два расширения не будут общаться друг с другом, поэтому у вас будет два соединения. Это было бы чертовски много работы, и очень немногие выиграют IMO - только те, кто на вашем месте, которые не могут полностью преобразовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...