Link identifier in php

Справочник по PHP : Взаимодействие с базами данных : База данных MySQL : Работа с базами данных

Устанавливает сетевое соединение с базой данных MySQL.

int mysql_connect([string $hostname[:port][:/path/to/socket][, [,string $username [,string $password]]])

Функция mysql_connect() устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $hostname, и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется именно с этим идентификатором. При регистрации указывается имя пользователя $username и пароль $password. Строка $hostname также может включать в себя номер порта в виде «hostname:port» или путь к сокету для локальной машины в системах Unix — «:/path/to/socket» (если сервер MySQL настроен не на стандартный, а на какой-то другой порт).

При ошибке выдается предупреждение. Выдачу сообщения об ошибке можно блокировать, указав перед именем функции оператор «@».

При следующем запуске функции с теми же самыми аргументами второе соединение не будет открыто, а функция возвратит идентификатор уже существующего.

В конце сценария обычно принято закрывать подключения функцией mysql_close(), но этого можно не делать, т.к. PHP автоматически закрывает все (неустойчивые) подключения при завершении сценария.

mysql_pconnect

Устанавливает устойчивое сетевое соединение с базой данных MySQL.

int mysql_pconnect([string $hostname[:port][:/path/to/socket][, [,string $username [,string $password]]])

Функция mysql_pconnect() устанавливает устойчивое сетевое соединение с базой данных MySQL, расположенной на хосте $hostname, и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется именно с этим идентификатором. При регистрации указывается имя пользователя $username и пароль $password. Строка $hostname также может включать в себя номер порта в виде «hostname:port«или путь к сокету для локальной машины в системах Unix — «:/path/to/socket» (если сервер MySQL настроен не на стандартный, а на какой-то другой порт).

Читайте также:  Java while or while пример

При ошибке выдается предупреждение. Выдачу сообщения об ошибке можно блокировать, указав перед именем функции оператор «@».

При следующем запуске функции с теми же самыми аргументами второе соединение не будет открыто, а функция возвратит идентификатор уже существующего.

mysql_pconnect() действует аналогично mysql_connect(), но с двумя отличиями:

  • Перед подключением функция пытается проверить, имеется ли уже открытое подключение. Если есть, то возвращается идентификатор вместо создания нового подключения.
  • При завершении сценария подключение не закрывается, а остается действующим для дальнейшего использования, т.е. функция mysql_close() не может закрыть подключения, созданное с помощью mysql_pconnect().

mysql_close

Закрывает установленное ранее соединение с базой данных.

int mysql_close ([int link_identifier])

Закрывает соединение с MySQL-сервером с идентификатором link_identifier, или последнее открытое соединение, если используется без идентификатора.

Возвращает true при удачном закрытии или false при ошибке.

Использование этой функции не обязательно, т.к. PHP автоматически закрывает все неустойчивые подключения при завершении работы сценария.

Подключения, установленные функцией mysql_pconnect(), не закрываются.

mysql_change_user

Изменяет параметры подключения.

int mysql_change_user(string user, string password [, string database [, int link_identifier]])

Если не указывается БД или подключение, то используется последняя активная БД.

Если авторизация не произошла, то параметры подключения не изменяются.

Работает с MySQL 3.23.3 и выше.

mysql_list_dbs

Возвращает список БД на сервере.

int mysql_list_dbs([int link_identifier])

Возвращает набор записей, содержащий список БД на сервере.

$bd=mysql_connect("localhost", "name", "pass"); $bd_list=mysql_list_dbs($bd); while($row=mysql_fetch_object($bd_list)) < echo $row->Database."n"; >

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

mysql_db_name

Возвращает имя базы данных из списка.

int mysql_db_name(int result, int row [, mixed field])

Параметр result задает дескриптор набора записей, полученных при помощи функции mysql_list_dbs(). Аргумент row указывает номер записи.

В случае ошибки данная функция возвращает false.

mysql_connect("localhost", "username", "pass"); $db_list=mysql_list_dbs(); for($i=0;$i 

Ранее функция называлась mysql_dbname().

mysql_select_db

Выбор одной базы данных MySQL.

Синтаксис:

int mysql_select_db (string database_name [, int link_identifier])

Возвращает true при удачном закрытии или false при ошибке.

Если Вы планируете открывать только одно соединение с базой данных за все время работы сценария, то можете не сохранять возвращенное значение, а также не указывать идентификатор при вызове всех остальных функций.

До того как послать первый запрос серверу MySQL, необходимо указать, с какой базой данных мы собираемся работать. Для этого и предназначена данная функция. Она уведомляет, что в дальнейших операциях с соединением link_identifier (или с последним открытым соединением, если указанный параметр не задан) будет использоваться база данных database_name.

Если на момент вызова данной функции подключений к базе данных нет, то косвенно вызывается функция mysql_connect() с параметрами по умолчанию.

mysql_create_db

Создание базы данных MySQL.

int mysql_create_db(string dbname [, int link_identifier])

Эта функция создает новую базу данных MySQL с именем dbname, используя подключение link_identifier.

$db=mysql_connect("localhost", "name", "pass"); if(mysql_create_db("my_db_name")) < echo "БД my_db_name создана"); >else

mysql_drop_db

Удаление базы данных MySQL.

int mysql_drop_db(string database_name [, int link_identifier])

Функция mysql_drop_db() удаляет базу данных database_name, доступную в подключении link_identifier.

В случае успешного удаления возвращает true, при ошибке - false.

mysql_list_tables

Возвращает список таблиц в БД.

int mysql_list_tables(string database [,int link_identifier])

Функция возвращает идентификатор результата (одна колонка), в котором содержатся имена всех таблиц, присутствующих в базе данных. Для извлечения этих имен можно использовать функцию mysql_result() с номером колонки, равным 0, иди функцию mysql_tablename().

Следующий пример выведет все имена баз данных и таблиц, которые в них содержаться:

$db=mysql_connect("localhost", "user_name", ""); $db_list=mysql_list_dbs($db); while($r_db=mysql_fetch_object($db_list)) < echo $r_db->Database."n"; // распечатать список таблиц $t_list=mysql_list_tables($r_db->Database); for($i=0;$i  

mysql_tablename

Возвращает имя таблицы в БД.

Синтаксис:

int mysql_tablename(int result, int i)

Функция возвращает имя таблицы с номером i из набора записей, полученных при помощи функции mysql_list_tables().

$db=mysql_connect("localhost", "user_name", ""); $result=mysql_list_tables("db_name"); $i=0; while($i"; $i++; >

mysql_query

Посылает запрос базе данных MySQL.

int mysql_query(string query [,int link_identifier])

Эта функция посылает запрос query базе данных, связанной с идентификатором link_identifier. Если идентификатор не указан, то принимается во внимание последнее открытое соединение. Если до этого соединение небыло установлено, то выполняется операция mysql_connect() с параметрами по умолчанию.

SQL-выражение, указанное в параметре query, не должно оканчиваться ";".

Если выражение содержит ошибки, или его выполнение приводит к ошибкам, то функция mysql_query() возвращает false.

В результате успешно выполненного запроса возвращается набор записей, который можно обработать следующими функциями:

  • mysql_result() - получить элемент набора записей
  • mysql_fetch_array() - внести запись в массив
  • mysql_fetch_row() - занести запись в нумерованный массив
  • mysql_fetch_assoc() - занести запись в ассоциативный массив
  • mysql_fetch_object() - занести запись в объект

Чтобы узнать, сколько записей было найдено командой SELECT, воспользуйтесь функцией mysql_num_rows().

Для того, чтобы узнать, сколько записей было изменено в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE, воспользуйтесь функцией mysql_affected_rows().

После обработки результатов запроса он может быть удален функцией mysql_free_result(). Но в этом нет необходимости, т.к. результаты сами уничтожаются после завершения работы сценария.

mysql_db_query

Посылает запрос к указанной базе данных MySQL.

int mysql_db_query(string database, string query [,int link_identifier])

Эта функция эквивалентна следующей последовательности функций:

mysql_select_db(string database [, int link_identifier]); mysql_query(string query [, int link_identifier]);

mysql_num_rows

Возвращает количество строк в результате запроса.

int mysql_num_rows(int result)

Эта функция возвращает число записей, найденных в результате выполнения SQL-команды SELECT (поиск по базе данных).

mysql_affected_rows

Возвращает количество измененных записей в БД MySQL.

int mysql_affected_rows([int link_identifier]);

Функция mysql_affected_rows() возвращает количество записей, которые были изменены в базе данных в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE.

Если последним запросом была команда DELETE без ограничения WHERE (т.е. из таблицы были удалены все записи), то наша функция возвратит 0.

mysql_insert_id

Получает вставленный идентификатор.

int mysql_insert_id([int $link_identifier])

Функция возвращает непосредственно перед ее вызовом сгенерированный идентификатор записи для автоинкрементного поля после выполнения команды insert. Вызывать ее разумно только сразу после выполнения инструкции insert, например, в таком контексте:

mysql_query("insert into Таблица(поле 1, поле 2) values("aa","bb")"); $id=mysql_insert_id();

Теперь к только что вставленной записи можно обратиться, используя идентификатор $id:

$r=mysql_query("select * from Таблица where mysql_data_seek 

Устанавливает указатель текущей строки.

int mysql_data_seek(int result, int row_number)

Эта функция устанавливает указатель текущей строки в результате result в позицию row_number, так что следующий вызов mysql_fetch_row() и mysql_fetch_array() вернет значения полей именно этой строки.

Нумерация записей ведется с 0.

Возвращает false в случае ошибки или если строки кончились.

mysql_free_result

int mysql_free_result(int result)

Данная функция освобождает память, занимаемую набором записей result, возвращенным запросом.

Эта функция необходима, когда нужно экономить память, т.к. PHP автоматически освобождает память при завершении сценария.

Источник

Which commands require $link_identifier, thought there be a list on google but to no avia. 🙁 Thanks, Regards X PS: There not required but its good practice you use the connection string after the query string.

  • 3 Contributors
  • 8 Replies
  • 197 Views
  • 7 Hours Discussion Span
  • Latest Post 14 Years Ago Latest Post by nav33n

http://in2.php.net/manual/en/ref.mysql.php Most of the functions which interacts with the database can have this $link_identifier as an optional parameter.

Yep.. It doesn't.. mysql_fetch_array doesn't connect to the database. It just uses the result resource returned by mysql_query (which uses $link_identifier).
See this for example.

All 8 Replies

http://in2.php.net/manual/en/ref.mysql.php Most of the functions which interacts with the database can have this $link_identifier as an optional parameter.

mysql_fetch_array($query, $connection)

I dont think that will work Do you think its just better to drop the $connection when working on big projects? I try to use the simple principles we first used when starting php (use the connection with the query), etc. Thanks

Yep.. It doesn't.. mysql_fetch_array doesn't connect to the database. It just uses the result resource returned by mysql_query (which uses $link_identifier).
See this for example.

Even though I have closed the connection before mysql_fetch_array, it still works.
Since its an optional parameter, I don't use it (big project or small).

Also you may want to note that the link identifier is not always optional. An example is if you wanted to connect to multiple accounts then that is when you will need to specify which account to find the database structure in. And to specify which database structure or account that is what the $link_identifier is for. But by default it uses the last connection opened. So as long as you only are only using the mysql_connect() function once you won't need to use the identifier.

Even with mysql_close, dosent require the $con variable, correct? Just brought up another question, why does it still preform the query even though the connection has been closed? and if so what is the point of closing the connection then? if it still being accessed seems pointlessss 😐

Источник

Оцените статью