Эти функции обеспечивают доступ к серверам баз данных MySQL.
Больше информации о MySQL можно найти на сайте http://www.mysql.com/.
int mysql_affected_rows
(int [link_identifier]
);mysql_affected_rows() возвращает количество столбцов, использованных запросами INSERT, UPDATE или DELETE на сервере, связываемом с определенным идентификатором связи(link_identifier). Если идентификатор связи не определен, используется последняя открытая связь.
Если последний запрос был запрос DELETE без условия WHERE, ВСЕ записи будут удалены из таблицы, но эта функция возвратит нуль.
Эта команда не действует при запросе SELECT, она действует только при запросах, изменяющих записи. Чтобы получить количество колонок возвращенных на запрос SELECT, используйте mysql_num_rows().
int mysql_close
(int [link_identifier]
);Возвращает: true при успешном завершении, false при ошибке
mysql_close() закрывает связь с базой данных MySQL, ассоциированной с определенным идентификатором связи(link identifier. Если идентификатор связи не определен, используется последняя открытая связь.
Имейте в виду, что это не всегда необходимо, так как непостоянные открытые связи автоматически закрываются в конце выполнения сценария.
mysql_close() не закроет устойчивые связи сгенерированные функцией mysql_pconnect().
См. также: mysql_connect(), и mysql_pconnect().
int mysql_connect
(string [hostname]
[:port]
, string [username]
, string [password]
);Возвращает: Правильный идентификатор связи MySQL при успешном выполнении, или false при ошибке.
mysql_connect() устанавливает соединение с MySQL сервером. Все аргументы дополнительны(опциональны), и если они пропущены, то устанавливаются по умолчанию -('localhost', имя пользователя, который владеет процессом, пустой пароль). Строка "имя сервера"("hostname") также может содержать номер порта( подобно "hostname:port").
В случае, если будет сделан второй вызов mysql_connect() с теми же аргументами, никакая новая связь не установится - вместо этого, будет возвращен идентификатор связи уже открытой связи.
Как только выполнение сценария закончится, связь с сервером закроется, если оно не было явно закрыто более ранний вызовом mysql_close().
См. также mysql_pconnect(), и mysql_close().
int mysql_create_db
(string database name, int [link_identifier]
);mysql_create_db() пытается создавать новую базу данных на сервере связанном с определенным идентификатором связи.
См. также: mysql_drop_db(). Для совместимости с более ранними версиями может также быть использована функция mysql_createdb() .
int mysql_data_seek
(int result_identifier, int row_number);Возвращает: true при успешном выполнении , false при ошибке.
mysql_data_seek() перемещает внутренний указатель столбца в MySQL запросе связанного с определенным идентификатором результата чтобы указать на определенный номер столбца. Последующий вызов mysql_fetch_row() должно возвратить этот столбец.
int mysql_db_query
(string database, string query, int [link_identifier]
);Возвращает: Правильный идентификатор результата MySQL в результате запроса, или false при ошибке .
mysql_db_query() выбирает базу данных и выполняет запрос на нее. Если дополнительный идентификатор связи не определен, функция попытается найти открытую связь с MySQL сервером и если такая связь не обнаружена, то она попытается создать ее, как если бы функция mysql_connect() была вызвана без аргументов.
См. также mysql_connect(). Для обратной совместимости может быть также использована функция mysql().
int mysql_drop_db
(string database_name, int [link_identifier]
);Возвращает: true при успешном выполнении , false при неудачном завершении.
mysql_drop_db() пытается удалить целую базу данных с сервера, связанного с определенным идентификатором связи.
См. также: mysql_create_db(). Для обратной совместимости может быть также использована функция mysql_dropdb().
int mysql_errno
(int [link_identifier]
);Ошибки возвращающиеся с выходного буфера базы данных mySQL больше не делают предупреждение. Взамен, используйте эту функцию, чтобы получить номер ошибки.
<?php mysql_connect("marliesle"); echo mysql_errno().": ".mysql_error()."<BR>"; mysql_select_db("nonexistentdb"); echo mysql_errno().": ".mysql_error()."<BR>"; $conn = mysql_query("SELECT * FROM nonexistenttable"); echo mysql_errno().": ".mysql_error()."<BR>"; ?>
См. также: mysql_error()
string mysql_error
(int [link_identifier]
);Ошибки возвращающиеся с выходного буфера базы данных mySQL больше не делают предупреждение. Взамен, используйте эту функцию, чтобы получить строку описания ошибки.
<?php mysql_connect("marliesle"); echo mysql_errno().": ".mysql_error()."<BR>"; mysql_select_db("nonexistentdb"); echo mysql_errno().": ".mysql_error()."<BR>"; $conn = mysql_query("SELECT * FROM nonexistenttable"); echo mysql_errno().": ".mysql_error()."<BR>"; ?>
См. также: mysql_errno()
array mysql_fetch_array
(int result);Возвращает результат строки запроса как массив, или false при отсутствии результата.
mysql_fetch_array() является расширенной версией функции mysql_fetch_row(). Кроме того, что она сохраняет данные в пронумерованных элементах, результатного массива, она также сохраняет ассоциативную связь, используя имена полей как ключи.
Если два или более столбцов имеют одинаковые имена, то связку ключ/значение получает последний из них. Чтобы получить доступ к другому столбцу(-цам) с таким же именем, вы должны использовать индексы или задать псевдонимы(alias) для этих столбцов.
select t1.f1 as foo t2.f1 as bar from t1, t2
Важно заметить, что использование mysql_fetch_array() НЕСУЩЕСТВЕННО медленнее, чем использование mysql_fetch_row(), пока это обеспечивает необходимую задачу.
Более подробно см. mysql_fetch_row()
Пример 1. mysql fetch array <?php mysql_connect($host,$user,$password); $result = mysql_db_query("database","select * from table"); while($row = mysql_fetch_array($result)) { echo $row["user_id"]; echo $row["fullname"]; } mysql_free_result($result); ?> |
object mysql_fetch_field
(int result, int [field_offset]
);Возвращает объект, содержащий информацию о поле.
mysql_fetch_field() Может быть использована для получения информации о поле в определенном результате запроса. Если параметры поля не указаны, то будет запрошено поле, которое еще не было запрошено функцией mysql_fetch_field().
Свойствами объекта являются:
name - имя столбца
table - имя таблицы, содержащей столбец
max_length - максимальная длинна столбца
not_null - 1, если столбец не может принимать нулевые значения
primary_key - 1, если столбец является первичным ключом.
unique_key - 1 если столбец является уникальным ключом
multiple_key - 1 если столбец является не-уникальным ключом
numeric - 1 если столбец числовой
blob - 1 это столбец является BLOB
type - тип столбца
unsigned - 1 если столбец не назван
zerofill - 1 если столбец заполнен нулем
См. также mysql_field_seek()
array mysql_fetch_lengths
(int result);Возвращает: Массив, который соответствует длинам каждого поля в последней строке, выбранной mysql_fetch_row(), или false при ошибке .
mysql_fetch_lengths() хранит длины каждого столбца в последней колонке результата возвращенного функцией mysql_fetch_row() в массиве, нумеруемом с нуля.
См. также: mysql_fetch_row().
object mysql_fetch_object
(int result);Возвращает объект с свойствами, который соответствует полученной строке, или false если нет результата.
mysql_fetch_object() подобна mysql_fetch_array(), с одним различием - вместо массива возвращается объект. Это означает, что Вы можете иметь доступ к данным только по именам полей, а не по их параметрам (индексные числа в данном случае являются неверным обращением).
Вообще говоря, эта функция идентична mysql_fetch_array(), такая же быстрая как mysql_fetch_row() (различие незначительное).
Пример 1. mysql fetch object <?php mysql_connect($host,$user,$password); $result = mysql_db_query("database","select * from table"); while($row = mysql_fetch_object($result)) { echo $row->user_id; echo $row->fullname; } mysql_free_result($result); ?> |
См. также: mysql_fetch_array() и mysql_fetch_row().
array mysql_fetch_row
(int result);Возвращает: Массив, который соответствует выбранным колонкам, или false если нет результата.
mysql_fetch_row() выбирает столбец данных из результата, и связывает его с определенным идентификатором результата(индексом элемента массива). Запрос возвращается как массив. Каждый столбец результата хранится в элементах массива, пронумерованного с нуля.
Последующий вызов функции mysql_fetch_row() должен возвратить следующую строку, или false если нет больше колонок.
См. также: mysql_fetch_array(), mysql_fetch_object(), mysql_data_seek(), mysql_fetch_lengths(), и mysql_result().
string mysql_field_name
(int result, int field_index);mysql_field_name() возвращает имя указанного поля. Аргументами функции являются идентификатор результата и индекс поля, т.е. mysql_field_name($result,2);
Возвратит имя второй области в результат, связанный с идентификатором результата($result).
Для обратной совместимости также может быть использована функция mysql_fieldname().
int mysql_field_seek
(int result, int field_offset);Поиск в определенном поле. Если следующий вызов mysql_fetch_field() не содержит указания поля, то должно быть возвращено именно это поле.
См. также: mysql_fetch_field().
string mysql_field_table
(int result, int field_offset);Получает имя таблицы поля. Для обратной совместимости также может быть использована mysql_fieldtable() .
string mysql_field_type
(int result, int field_offset);mysql_field_type() подобна функции mysql_field_name() . Аргументы идентичны, но возвращается тип поля. Это будет что-то из "int", "real", "string", "blob", или другие типы, которые подробно описываются в документации MySQL.
Пример 1. mysql field types <?php mysql_connect("localhost:3306"); mysql_select_db("wisconsin"); $result = mysql_query("SELECT * FROM onek"); $fields = mysql_num_fields($result); $rows = mysql_num_rows($result); $i = 0; $table = mysql_field_table($result, $i); echo "Your '".$table."' table has ".$fields." fields and ".$rows." records <BR>"; echo "The table has the following fields <BR>"; while ($i < $fields) { $type = mysql_field_type ($result, $i); $name = mysql_field_name ($result, $i); $len = mysql_field_len ($result, $i); $flags = mysql_field_flags ($result, $i); echo $type." ".$name." ".$len." ".$flags."<BR>"; $i++; } mysql_close(); ?> |
Для обратной совместимости mysql_fieldtype() также может быть использована.
string mysql_field_flags
(int result, int field_offset);mysql_field_flags() возвращает флаги указанного поля. Флаги передаются как одно слово на флаг, разделенные одним пробелом, так, что Вы можете разделить возвращенную величину используя explode().
Если ваша текущая версия MySQL их поддерживает, могут быть получены следующие флаги : : "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".
Для обратной совместимости mysql_fieldflags() также может быть использована.
int mysql_field_len
(int result, int field_offset);mysql_field_len() возвращает длину указанного поля. Для обратной совместимости mysql_fieldlen() также может быть использована.
int mysql_free_result
(int result);mysql_free_result() должна быть использована только если Вы беспокоитесь об использовании слишком большого объема памяти, во время работы вашего скрипта. Вся используемая результатом память для определенного идентификатора результата автоматически будет освобождена.
Для обратной совместимости mysql_freeresult() также может быть использована.
int mysql_insert_id
(int [link_identifier]
);mysql_insert_id() возвращает ID сгенерированнуые для поля с автоинкрементом(AUTO_INCREMENTED). Эта функция не использует аргументов. Она возвратит автоматически сгенерированный номер ID возвращенный последним запросом INSERT.
int mysql_list_fields
(string database_name, string table_name, int [link_identifier]
);mysql_list_fields() извлекает информацию о заданной tablename таблице. Аргументы - имя базы данных и имя таблицы. После выполнения возвращается указатель результата, который может использоваться функциями mysql_field_flags(), mysql_field_len(), mysql_field_name(), и mysql_field_type().
Идентификатор результата является положительным целым. Функция возвращает -1 если происходит ошибка. Строка описсания ошибки будет помещена в переменную $phperrmsg, и если функция не была вызвана как @mysql() то затем также будет выведено это описание ошибки.
Для обратной совместимости mysql_listfields() также может быть использована.
int mysql_list_dbs
(int [link_identifier]
);mysql_list_dbs() возвратит указатель результата, содержащий базы данных доступные текущему процессу mysql. Используйте функцию mysql_tablename(), чтобы просмотреть этот указатель результата.
Для обратной совместимости mysql_listdbs() также может быть использована.
int mysql_list_tables
(string database, int [link_identifier]
);mysql_list_tables() берет имя базы данных и указатель результата очень подобно функции mysql_db_query(). Функция mysql_tablename() должна использоваться, чтобы извлечь фактические имена таблиц с указателя результата.
Для обратной совместимости mysql_listtables() также может быть использована.
int mysql_num_fields
(int result);mysql_num_fields() получает количество полей в установленном результате.
См. также: mysql_db_query(), mysql_query(), mysql_fetch_field(), mysql_num_rows().
Для обратной совместимости mysql_numfields() также может быть использована.
int mysql_num_rows
(int result);mysql_num_rows() получает количество столбцов в установленном результате
См. также: mysql_db_query(), mysql_query() и, mysql_fetch_row().
Для обратной совместимости mysql_numrows() также может быть использована.
int mysql_pconnect
(string [hostname]
[:port]
, string [username]
, string [password]
);Возвращает: Правильный MySQL идентификатор устойчивой связи при успешном выполнении , или false при ошибке.
mysql_pconnect() действует очень похоже на mysql_connect() с двумя важными различиями.
Во-первых, при соединении, функция должна сначала попытаться найти (устойчивую) связь, которая уже открыта тем же хостом, именем пользователя и паролем. Если она обнаруживается, возвратится ее идентификатор, вместо открытия нового соединения.
Во-вторых, соединение с сервером SQL не закроется, когда закончится выполнение сценария. Вместо этого, связь останется открытой для последующего использования (mysql_close() не закроет связи установленные функцией mysql_pconnect()).
Потому этот тип связей назван 'устойчивый'.
int mysql_query
(string query, int [link_identifier]
);mysql_query() посылает запрос в базу данных, к настоящему времени активную на сервере, который связан с определенным идентификатором связи. Если link_identifier не указан, используется последняя открытая связь. Если связь не открыта, функция пытается установить связь, как если бы была вызвана функция mysql_connect() и использует ее.
Эта функция возвращает TRUE или FALSE чтобы показать успешность выполнения запросов UPDATE, INSERT, и DELETE. При запросе SELECT она возвращает новый идентификатор результата. Ресурсы, использованные запросом затем могут быть освобождены вызовом функции mysql_free_result().
См. также: mysql_db_query(), mysql_select_db(), и mysql_connect().
int mysql_result
(int result, int row, mixed field);mysql_result() возвращает содержимое одной ячейки из установленного результата MySQL. Аргументом поля может быть номер или имя поля, или параметр типа имя_таблицы-точка-имя_поля(fieldname.tablename). Если имя столбца заменено псевдонимом('select foo as bar from...'), используйте псевдоним вместо имени столбца.
Работая с больших результатами, Вы должны предусматривать использование одной из функций, которые выбирают целую строку(указано ниже) За счет того, что эти функции возвращают содержимое большого числа ячеек за один вызов функции, они ЗНАЧИТЕЛЬНО более быстрые чем mysql_result(). Также, имейте в виду, что определение аргумента поля числовым параметром, значительно более быстрое чем определение имени поля(fieldname) или использование аргумента tablename.fieldname.
Вызов mysql_result() не должен смешиваться с вызовами других функций, которые имеют дело с установленным результатом.
Рекомендуемые быстродействующие альтернативы: mysql_fetch_row(), mysql_fetch_array(), и mysql_fetch_object().
int mysql_select_db
(string database_name, int [link_identifier]
);Возвращает: true при успешном выполнении , false при ошибке
mysql_select_db() устанавливает текущую активную базу данных в сервере, которая связывается с определенным идентификатором связи. Если не определен идентификатор связи, принимается последняя открытая связь. Если связь не открыта, функция попытается установить связь, как если бы была вызвана функция mysql_connect().
Каждый последующий вызов mysql_query() будет произведен в активной базе данных.
См. также: mysql_connect(), mysql_pconnect(), и mysql_query()
Для обратной совместимости mysql_selectdb() также может быть использована.
string mysql_tablename
(int result, int i);mysql_tablename() берет указатель результата возвращенный функцией mysql_list_tables() а также целочисленный индекс и возвращает имя таблицы. Функция mysql_num_rows() может использоваться для того, чтобы определить количество таблиц на данном указателе результата.
Пример 1. mysql_tablename() example <?php mysql_connect ("localhost:3306"); $result = mysql_listtables ("wisconsin"); $i = 0; while ($i < mysql_num_rows ($result)) { $tb_names[$i] = mysql_tablename ($result, $i); echo $tb_names[$i] . "<BR>"; $i++; } ?> |