Фон :
- У нас есть класс, который используется для доступа к базе данных mysql. Методы в этом классе формируют новое соединение MySQL, если ссылка не указана в качестве параметра.
- То, как мы использовали класс в системе (а не класс базы данных), заключается в том, чтобы объявить объект базы данных и вызвать соответствующий метод, и позволить области действия объекта завершаться всякий раз, когда это происходит.
- Мы столкнулись с проблемой с кодом в системе (не в классе базы данных), который создавал соединение, вставлял запись, закрывал соединение, а затем открывал новое соединение, чтобы получить максимум (id) для получения последний вставленный идентификатор. (Очевидно, это не масштабируется.)
Задача
Я пытаюсь исправить код, чтобы заменить использование max (id) на mysql_insert_id в соответствующих функциях, и мне нужно пересмотреть структуру кода одним из следующих способов, чтобы ПРОЙТИ ссылку соединения с базой данных.
Я думаю, у меня есть следующие варианты:
1. Пересмотрите код методов класса, чтобы использовать внутреннюю переменную ссылки класса. Объявите объект базы данных один раз как глобальный объект. Пересмотрите использование кода во всем приложении, чтобы использовать эту глобальную переменную.
2. Пересмотрите код методов класса, чтобы использовать внутреннюю переменную ссылки класса. Сохраните «Идентификатор ссылки MySQL, возвращенный mysql_connect ()» в глобально доступную переменную, а затем используйте его при создании объекта базы данных. Минимальное влияние на использование объекта и его методов.
Есть ли другой вариант? Я стремлюсь к (2), потому что он имеет меньше оттока кода - но я должен это делать? Есть потенциальные проблемы?