Отключение
Автор: | Артемьев Сергей Игоревич |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
По-умолчанию, MySQL выполняет запросы в буферизованном режиме, т.е. запрос сначала полностью выполняется на сервере, потом все результаты в полном объёме передаются клиентскому скрипту. Это значит, что интерпретатор расходует память для их хранения и обработки.
В режиме отключенной буферизации данные интерпретатором не хранятся и стрираются сразу после использования. Как следствие этого - невозможно применить функции mysql_data_seek() и mysql_num_rows(), т.к. интерпретатор может получить доступ только к текущей строке и не знает, сколько ещё строк будет прочитано из базы данных.
Обычно буферизацию отключают, когда скрипты обрабатывают очень большие объёмы данных или результаты длительных запросов. Выполнить запрос без буферизации позволяет функция mysql_unbuffered_query(), которая по синтаксису и способу применения полностью аналогична mysql_query(), за исключением буфферизации результатов.
Если вы обрабатываете большие объёмы данных, то вам непременно стоит уделять побольше внимания своевременному закрытию подключений и освобождению данных. Эти операции рекомендуется проводить как можно скорее после обработки данных.
Для освобождения результатов запроса используется функция mysql_free_result(), которой необходимо передать ссылку на результаты запроса.
<?php ... $qry = mysql_query($sql, $dblink); // // обработка результатов запроса // mysql_free_result($qry); ... ?>
Несмотря на то, что PHP автоматически освобождает все ресурсы при завершении скрипта, стоит приучить себя к аккуратности и всегда производить чистку ресурсов вручную. Такая привычка очень поможет вам впоследствии при разработке сложных скриптов.
Последняя операция, которую надо сделать перед завершением скрпита - отключиться от базы данных. Для этого надо вызвать функцию mysql_close(), передав ей ссылку на подключение.
<?php $qry = mysql_connect($server, $user_name, $password); // // выполнение запросов // // обработка результатов запроса // mysql_close($dblink); ?>
Если в процессе работы возникает необходимость сменить имя пользователя в подключении к базе данных, то можно не выполнять отключение/подключение,а воспользоваться функцией mysql_change_user(). Её необходимо указать новые имя пользователя и пароль.
<?php $new_user = 'user'; $new_password = 'password'; $new_database = 'SecondDB'; $dblink = mysql_change_user($user, $password, $database, $dblink); if($dblink) echo 'Пользователь изменён'; else echo 'Ошибка смены пользователя:' . mysql_error(); ?>
Как видите, в применении баз данных в PHP нет ничего сложного и сверхъестественного. Немного потренировавшись, вы сможете с лёгкостью писать функциональные и удобные скрипты с импользованием MySQL или любой другой СУБД.