Справочник по PHP - white cat
Шрифт:
Интервал:
Закладка:
mysql_connect("localhost", "username", "pass");
$db_list=mysql_list();
for($i=0;$i<($cnt=mysql_num_rows($db_list));$i++) {
echo mysql_db_name($db_list,$i)."n";
}
Ранее функция называлась 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 {
echo "Ошибка создания БД: %sn".mysql_error());
}
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_num_rows($t_list);$i++) {
echo " - ".mysql_tablename($t_list,$i)."n";
}
}
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<mysql_num_rows($result)) {
$t_name[$i]=mysql_tablename($result, $i);
echo $t_name[$i]."<BR>";
$i++;
}
mysql_query
Посылает запрос базе данных MySQL.
Синтаксис:
int mysql_query(string query [,int link_identifier])
Эта функция посылает запрос query базе данных, связанной с идентификатором link_identifier. Если идентификатор не указан, то принимается во внимание последнее открытое соединение. Если до этого соединение небыло установлено, то выполняется операция mysql_connect() с параметрами по умолчанию.
SQL-выражение, указанное в параметре query, не должно оканчиваться ";".
Если выражение содержит ошибки, или его выполнение приводит к ошибкам, то функция mysql_query() возвращает false.
В результате успешно выполненного запроса возвращается набор записей, который можно обработать следующими функциями:
Чтобы узнать, сколько записей было найдено командой 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 (поиск по базе данных).
<?php
$link = mysql_connect("localhost", "username", "password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
echo "Получено строк: $num_rowsn";
?>
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 id=$id");
$Row=mysql_fetch_array($r);
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 автоматически освобождает память при завершении сценария.
Работа с базами данных
mysql_connect
Устанавливает сетевое соединение с базой данных 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 автоматически закрывает все (неустойчивые) подключения при завершении сценария.
<?php
$conn = mysql_connect ("localhost", "username", "pass")
or die ("Соединение не установлено!");
print ("Соединение установлено!");
mysql_close($conn);
?>
mysql_pconnect
Устанавливает устойчивое сетевое соединение с базой данных MySQL.