У меня есть несколько php-функций для моего кода, и каждая функция пытается установить соединение mysql, отправлять запросы и закрывать соединение mysql. Является ли это хорошей конструкцией или мне нужно установить одно соединение из главной функции, а затем передать переменные каждой из этих функций для выполнения запросов?
Кроме того, возможно ли, что этот код даст ошибки при попытке выполнить второй экземпляр mysql_query в func1()? Не будет ли экземпляр соединения mysql, вызванный в func2, независимым от экземпляра, вызванного func1? В моем коде я, кажется, получаю непоследовательное поведение. Время от времени, я получаю ошибку, но когда я обновляю страницу, кажется, нет проблем. Любые предложения приветствуются. Спасибо.
def func1() {
mysql_connect(params)
mysql_query()
func2()
mysql_query()
mysql_close()
}
def func2() {
mysql_connect(params)
mysql_query()
mysql_close()
}
Я не могу сказать, что это ужасный удар производительности, но это просто не имеет смысла.
Соединение с базой данных должно быть открыто один раз.
Если вам нужно получить 5 яблок из коробки - вы открываете и закрываете эту коробку 5 раз? Или просто откройте его и получите все сразу?;-)
То же самое здесь.
Просто откройте соединение один раз и никогда не закрывайте его. Это будет сделано автоматически.
Обычно я использую одно соединение в своих проектах.
//on the beginning of the file I connect to the database
$bdconn = mysql_connect(/* params */);
//things to do on the page
{...}
//at the end of the page I disconnect from it
mysql_close($dbconn);
Если вам нужно подключиться к другим базам данных, а также при запуске, вам просто нужно подключиться к другому, но затем просто подключитесь к первому. Я думаю, что не рекомендуется работать с большим количеством баз данных в одно и то же время.
@
из вашего кода, так как это бесполезно и плохо
Вы должны использовать singleton для создания или получения уникального соединения MySQL, несколько не рекомендуется, так как вам нужно "называть" каждое соединение и указывать, что вы хотите использовать.