Справочник и примеры языка PHP

Abs

abs

$pos_num = abs($number);

Abs возвращает абсолютное значение аргумента number.



Addslashes

addslashes

$escaped_string = addslashes($string); .

Возвращает копию строки string , в которой экранированы все символы $ \ или '.



Asort

asort

$sorted_array = asort($array);

Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



Bindec

bindec

$decimal = bindec($binary);

Функция возвращает десятичный эквивалент указанного двоичного числа binary.



Ceil

ceil

$higher_integer = ceil($number);

Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



Chdir

chdir

chdir($directory);

Изменяет текущий рабочий каталог на каталог, заданный аргументом.



Chgrp

chgrp

chgrp($file,Sgroupj;

Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



Chimed

chimed

chimed($file,$permissions);

Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



Chmod

chmod

$result = chmod($filename, $mode)

Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



Chop

chop

$stripped_string = chop($string);

Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



Chown

chown

chown($file, Sowner);

Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



Chr

chr

$character = chr($number);

Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



Clearstack

clearstack

clearstack();

Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



Clearstatcache

clearstatcache

clearstatcache();

Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



Close

close

close ($fd)

Закрывает файл, связанный с указанным файловым дескриптором.



Closedir

closedir

closed!r($directorу);

Закрывает каталог, открытый функцией opendir.



Closelog

closelog

closelog();

Останавливает всю журнализацию, выполняемую функцией syslog .

COS

$result = cos($number);

Возвращает косинус аргумента number.



Count

count

$number = count($array);

Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



Crypt

crypt

$encrypted_string = crypt($string);
$encrypted_string = crypt($string, $salt);

Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



Ctime

ctime

$time = ctime($time)

Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



Date

date

$formatted_date = date($format,$time);

Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

А АМ/РМ

a am/pm

D День (например Sun)

d День (например 13)

F Месяц (например February)

Н Час в 24-часовом формате (например 17)

h Час в 12-часовом формате (например 5)

i Минуты (например 30)

l День (например Sunday)

М Месяц (например Feb)

m Месяц (например 02)

s Секунды (например 27)

Y Год (например 1998)

у Год (например 98)

U Секунды с начала эпохи (отсчета) (например 803537321)

Z День года (например 154)



Dblist

dblist

$db_info = dblist();

Вернет список СУБД, поддерживаемых РНР.



Decbin

decbin

$binary = decbin($decimal);

Возвращает двоичный эквивалент указанного десятичного числа.



Decoct

decoct

$octal = decoct($decimal);

Возвращает восьмеричный эквивалент указанного десятичного числа.



Dexhex

dexhex

$hex = dechex($decimal);

Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



Doubleval

doubleval

$double = doubleval($variable);

Возвращает значение переменной в виде числа с плавающей запятой.



Echo

echo

echo [format_string] expression [, expression ...]

He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



Ехр

ехр

$result = exp($number);
Возвращает число е, возведенное в указанную степень.



End

end

end($array);

Устанавливает внутренний указатель массива array на последний элемент массива.



Ereg_replace

ereg_replace

ereg_replace($expression, $replacement_string, $string);

Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



Ereg

ereg

$result = ereg($expression, $string);

$result = ereg($expression, $string, $match_array);

Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



Eregi_replace

eregi_replace

eregi_replace($expression, $replacement_string, $string);

Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



Eregi

eregi

$result = eregi($expression, $string);

$result = eregi($expression, Sstring, $match_array);

Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



Escapeshellcmd

escapeshellcmd

$safe_string = escapeshellcmd(Sstring);

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



Eval

eval

eval($string);

Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



Exec

exec

$last_line = exec($command);

$last_line = exec($command, $output_array);

$last_line = exec($command, $output_array, $return_code);

Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



Exit

exit

exit();

Завершение синтаксического анализа HTML-файла.



Fclose

fclose

fclose($fd);

Закрывает файл, открытый fopen.



Feof

feof

$result = feof($fd);

Возвращает true, если файловый дескриптор fd находится в конце файла.



Fgets

fgets

$line = fgets($fd, $max_bytes);

Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



Fgetss

fgetss

$line = fgetss($fd, $max_bytes);

Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



File

file

$аггау = file($filename);

Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



Fileatime

fileatime

$time = fileatime($filename);

Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



Filectime

filectime

$time = filectime($filename);

Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



Filegroup

filegroup

$group_id = filegroup($filename);

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



Fileinode

fileinode

$inode = fileinode($filename);

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



Filemtime

filemtime

$time = filemtime($filename);

Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



Fileowner

fileowner

$owner = fileowner($filename);

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



Fileperms

fileperms

$permissions = fileperms($filename);

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



Filesize

filesize

$size = filesize($filename);

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



Filetype

filetype

$type = filetype($filename);

Возвращает одно из следующих значений, указывающих на тип файла

filename : dir, file, fifo, char, block или link.



Floor

floor

$lower_integer = floor($number);

Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



Flush

flush

flush();

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



Fopen

fopen

$fd = fopen($filename, $mode);

Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



Fpassthru

fpassthru

fpassthru($fd);

Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



Fprintf

fprintf

fprintf($fd, $string [, arg ...])

Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



Fputs

fputs

fputs($fd, $string);

Записывает строку string в файл, связанный с дескриптором fd.



Fseek

fseek

fseek($fd, $position);

Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



Fsockopen

fsockopen

$fd = fsockopen($hostname,$port);

Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



Ftell

ftell

Sposition = ftell($fd);

Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



Справочник и примеры языка PHP

get my in ode

$inode = getmyinode();

Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



Справочник и примеры языка PHP

getaccdir

$directory = getaccdir();

Возвращает имя каталога, где хранятся файлы конфигурации РНР.



Справочник и примеры языка PHP

getenv

$value = getenv($variable);

Возвращает значение переменной окружения, указанной в variable .



Справочник и примеры языка PHP

gethostbyaddr

$hostname = gethostbyaddr($address);

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



Справочник и примеры языка PHP

gethostbyname

Saddress = gethostbyname($hostname);

Возвращает IP-адрес указанного в hostname хоста.



Справочник и примеры языка PHP

getiastmod

$time = getlastmod();

Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



Справочник и примеры языка PHP

getimagesize

$file_info_array = getimagesize($filename);

Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



Справочник и примеры языка PHP

getlastaccess

$time = getlastaccess();

Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



Справочник и примеры языка PHP

getlastbrowser

$browser = getlastbrowser();

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



Справочник и примеры языка PHP

getlastemail

$email = getlastemail();

Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



Справочник и примеры языка PHP

getlasthost

$host = getlasthost();

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



Справочник и примеры языка PHP

getlastref

$url = getlastref();

Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



Справочник и примеры языка PHP

getlogdir

$directory = getlogdir();

Возвращает каталог, в котором находятся журналы регистрации РНР.



Справочник и примеры языка PHP

getmypid

$pid = getmypid();

Возвращает идентификатор текущего РНР-процесса.



Справочник и примеры языка PHP

getmyuid

$id = getmyuid();

Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



Справочник и примеры языка PHP

getpid

$pid = getpid()

Возвращает идентификатор процесса (PID) программы Lite.



Справочник и примеры языка PHP

getpwnam

$entry = getpwnam($username)

Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег Справочник и примеры языка PHP

    Справочник и примеры языка PHP

    Abs

    abs

    $pos_num = abs($number);

    Abs возвращает абсолютное значение аргумента number.



    Addslashes

    addslashes

    $escaped_string = addslashes($string); .

    Возвращает копию строки string , в которой экранированы все символы $ \ или '.



    Asort

    asort

    $sorted_array = asort($array);

    Возвращает отсортированную копию ассоциативного массива array, asort работает только с ассоциативными массивами. Для сортировки обычных массивов используйте sort. Если первый элемент массива является числом, возвращаемый массив будет отсортирован по порядку, иначе он будет отсортирован по алфавиту.



    Bindec

    bindec

    $decimal = bindec($binary);

    Функция возвращает десятичный эквивалент указанного двоичного числа binary.



    Ceil

    ceil

    $higher_integer = ceil($number);

    Округляет заданное число до следующего целого числа и возвращает результат как число с плавающей запятой.



    Chdir

    chdir

    chdir($directory);

    Изменяет текущий рабочий каталог на каталог, заданный аргументом.



    Chgrp

    chgrp

    chgrp($file,Sgroupj;

    Изменяет идентификатор группы заданного файла на группу, указанную в аргументе.



    Chimed

    chimed

    chimed($file,$permissions);

    Функция изменяет права доступа к файлу на указанные в аргументе permissions . Этот аргумент задается в восьмеричном виде.



    Chmod

    chmod

    $result = chmod($filename, $mode)

    Изменяет режим указанного файла на значение, заданное в mode. Если операцию произвести не удалось, возвращается отрицательное целое число. Значение mode может быть задано как десятичное, восьмеричное или шестнадцатеричное.



    Chop

    chop

    $stripped_string = chop($string);

    Возвращает строку string , у которой удалены все имевшиеся концевые пробелы, табуляции и символы новой строки.



    Chown

    chown

    chown($file, Sowner);

    Изменяет владельца заданного файла на указанного в аргументе owner. Эта функция будет работать только в том случае, если РНР выполняется от имени суперпользователя, что обычно не рекомендуется.



    Chr

    chr

    $character = chr($number);

    Возвращает символ ASCII, соответствующий заданному числовому аргументу. Шестнадцатеричные и восьмеричные числа обозначаются как 0xff и 077 соответственно. Остальные числа считаются десятичными.



    Clearstack

    clearstack

    clearstack();

    Очищает текущий стек. Эта функция создана специально, чтобы обойти некоторые ограничения в дизайне РНР. Если у вас есть пользовательская функция, содержащая большой цикл, вы можете столкнуться с проблемами, связанными с нехваткой стекового пространства. Если это происходит, вызовите clearstack() из этого цикла. Недостаток данного метода в том, что вашу функцию невозможно будет вызвать из другой функции. Результат функции следует сохранить в переменной, которая может быть затем использована по вашему усмотрению.



    Clearstatcache

    clearstatcache

    clearstatcache();

    Очищает кэш, используемый всеми функциями, которые получают информацию о файлах. Так как доступ к такой информации занимает достаточно много времени, РНР хранит ее в кэше. Если вам необходи-ма уверенность, что используете самую свежую информацию о файле (то есть не кэшированную), вызовите функцию clearstatcache(); перед получением этой информации.



    Close

    close

    close ($fd)

    Закрывает файл, связанный с указанным файловым дескриптором.



    Closedir

    closedir

    closed!r($directorу);

    Закрывает каталог, открытый функцией opendir.



    Closelog

    closelog

    closelog();

    Останавливает всю журнализацию, выполняемую функцией syslog .

    COS

    $result = cos($number);

    Возвращает косинус аргумента number.



    Count

    count

    $number = count($array);

    Возвращает число элементов в массиве array. Если переменная не является массивом, функция вернет значение 1 (так как переменная подобна массиву с только одним элементом). Если аргумент array не указан, функция вернет 0.



    Crypt

    crypt

    $encrypted_string = crypt($string);
    $encrypted_string = crypt($string, $salt);

    Шифрует заданную строку. Используется стандартный метод шифрования Unix - DES, тот же, что используется для шифрования паролей и т. д. Можно задать необязательный двухсимвольный аргумент salt (база для шифрования).



    Ctime

    ctime

    $time = ctime($time)

    Преобразует время time, заданное некоторым числом секунд с начала отсчета, в обычное текстовое представление времени Unix.



    Date

    date

    $formatted_date = date($format,$time);

    Вернет time (стандарное время Unix, выдаваемое функцией Time), отформатированное в указанный format. Возвращаемое значение имеет тот же вид, что и format, где все указанные ниже символы заменены на соответствующие значения:

    А АМ/РМ

    a am/pm

    D День (например Sun)

    d День (например 13)

    F Месяц (например February)

    Н Час в 24-часовом формате (например 17)

    h Час в 12-часовом формате (например 5)

    i Минуты (например 30)

    l День (например Sunday)

    М Месяц (например Feb)

    m Месяц (например 02)

    s Секунды (например 27)

    Y Год (например 1998)

    у Год (например 98)

    U Секунды с начала эпохи (отсчета) (например 803537321)

    Z День года (например 154)



    Dblist

    dblist

    $db_info = dblist();

    Вернет список СУБД, поддерживаемых РНР.



    Decbin

    decbin

    $binary = decbin($decimal);

    Возвращает двоичный эквивалент указанного десятичного числа.



    Decoct

    decoct

    $octal = decoct($decimal);

    Возвращает восьмеричный эквивалент указанного десятичного числа.



    Dexhex

    dexhex

    $hex = dechex($decimal);

    Возвращает шестнадцатеричный эквивалент указанного десятичного числа.



    Doubleval

    doubleval

    $double = doubleval($variable);

    Возвращает значение переменной в виде числа с плавающей запятой.



    Echo

    echo

    echo [format_string] expression [, expression ...]

    He является настоящей функцией, скорее, это встроенная в РНР версия функции printf языка С. В самом простом варианте echo напечатает результат выражения expression . Можно указать до пяти выражений, результат каждого из которых будет напечатан по очереди. Также можно указать строку форматирования, которая должна иметь тот же вид, что и в функции printf языка С или Perl.



    Ехр

    ехр

    $result = exp($number);
    Возвращает число е, возведенное в указанную степень.



    End

    end

    end($array);

    Устанавливает внутренний указатель массива array на последний элемент массива.



    Ereg_replace

    ereg_replace

    ereg_replace($expression, $replacement_string, $string);

    Замещает все части в указанной строке string , которые отвечают выражению expression , строкой replacement_string.



    Ereg

    ereg

    $result = ereg($expression, $string);

    $result = ereg($expression, $string, $match_array);

    Вернет true, если строка string отвечает регулярному выражению в expression . Если в качестве третьего аргумента указан массив, значение, отвечающее выражению, будет помещено в массив.



    Eregi_replace

    eregi_replace

    eregi_replace($expression, $replacement_string, $string);

    Идентично ereg_replace, за исключением того, что при сравнении игнорируется регистр.



    Eregi

    eregi

    $result = eregi($expression, $string);

    $result = eregi($expression, Sstring, $match_array);

    Идентично ereg, за исключением того, что при сравнении игнорируется регистр.



    Escapeshellcmd

    escapeshellcmd

    $safe_string = escapeshellcmd(Sstring);

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



    Eval

    eval

    eval($string);

    Обрабатывает содержимое строки string таким образом, как если бы это был скрипт РНР. Для строки выполняется подстановка переменных, поэтому, если вы хотите использовать переменную в этом "минискрипте", ее следует заэкранировать.



    Exec

    exec

    $last_line = exec($command);

    $last_line = exec($command, $output_array);

    $last_line = exec($command, $output_array, $return_code);

    Выполняет в вызываемой подоболочке Unix команду command . Возвращается только последняя строка результата команды. Если вторым аргументом указан массив, все строки, выводимые командой, будут помещены в него. Если есть третий аргумент, в эту переменную записывается код возврата команды.



    Exit

    exit

    exit();

    Завершение синтаксического анализа HTML-файла.



    Fclose

    fclose

    fclose($fd);

    Закрывает файл, открытый fopen.



    Feof

    feof

    $result = feof($fd);

    Возвращает true, если файловый дескриптор fd находится в конце файла.



    Fgets

    fgets

    $line = fgets($fd, $max_bytes);

    Возвращает следующую строку (длиной до max_bytes ) из файла, на который указывает fd.



    Fgetss

    fgetss

    $line = fgetss($fd, $max_bytes);

    Идентична fgets за исключением того, что эта функция пытается удалить любые теги HTML или РНР при чтении файла.



    File

    file

    $аггау = file($filename);

    Возвращает массив, каждый элемент которого содержит строку файла, указанного в filename.



    Fileatime

    fileatime

    $time = fileatime($filename);

    Возвращает (в стандартном формате времени Unix) время последнего доступа к файлу filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает — 1.



    Filectime

    filectime

    $time = filectime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения статуса файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Filegroup

    filegroup

    $group_id = filegroup($filename);

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



    Fileinode

    fileinode

    $inode = fileinode($filename);

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



    Filemtime

    filemtime

    $time = filemtime($filename);

    Возвращает время (в стандартном формате времени Unix) последнего изменения файла filename . Если эта информация по каким-либо причинам не может быть получена, функция возвращает -1.



    Fileowner

    fileowner

    $owner = fileowner($filename);

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



    Fileperms

    fileperms

    $permissions = fileperms($filename);

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



    Filesize

    filesize

    $size = filesize($filename);

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



    Filetype

    filetype

    $type = filetype($filename);

    Возвращает одно из следующих значений, указывающих на тип файла

    filename : dir, file, fifo, char, block или link.



    Floor

    floor

    $lower_integer = floor($number);

    Округляет число number до ближайшего меньшего целого и возвращает результат в виде числа с плавающей запятой.



    Flush

    flush

    flush();

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



    Fopen

    fopen

    $fd = fopen($filename, $mode);

    Открывает файл в режиме mode и возвращает указатель на дескриптор, связанный с открытым файлом. Как и в функции fopen языка С, режим может быть одним из следующих: "r", "r+", "w", "w+", "a", "а+". Функция возвращает -1, если файл невозможно открыть.



    Fpassthru

    fpassthru

    fpassthru($fd);

    Печатает все оставшиеся данные файла, на который указывает дескриптор fd.



    Fprintf

    fprintf

    fprintf($fd, $string [, arg ...])

    Работает как функция С (или Perl) с тем же именем. Первый аргумент - это файловый дескриптор. Отформатированная строка печатается в файл, связанный с файловым дескриптором.



    Fputs

    fputs

    fputs($fd, $string);

    Записывает строку string в файл, связанный с дескриптором fd.



    Fseek

    fseek

    fseek($fd, $position);

    Устанавливает дескриптор файла fd на позицию (смещение от начала файла), указанную в аргументе position.



    Fsockopen

    fsockopen

    $fd = fsockopen($hostname,$port);

    Открывает соединение с hostname на порте port и возвращает дескриптор файла, связанный с открытым соединением. Если номер порта равен 0, аргумент hostname будет рассматриваться как имя в стиле имени файла сокета Unix на локальном хосте. В случае ошибки функция вернет следующие значения: -3, если не удалось создать сокет; —4, если не удалось разрешить имя хоста (установить IP-адрес); —5, если в соединении было отказано или оно закончилось по тайм-ауту; -6, если потерпел неудачу вызов fdopen() и, наконец, -7, если потерпел неудачу вызов setvbuf().



    Ftell

    ftell

    Sposition = ftell($fd);

    Возвращает позицию указателя в файле, связанном с fd. Это значение можно использовать в качестве аргумента для fseek.



    Справочник и примеры языка PHP

    get my in ode

    $inode = getmyinode();

    Возвращает указатель inode HTML-файла, содержащего текущий скрипт РНР.



    Справочник и примеры языка PHP

    getaccdir

    $directory = getaccdir();

    Возвращает имя каталога, где хранятся файлы конфигурации РНР.



    Справочник и примеры языка PHP

    getenv

    $value = getenv($variable);

    Возвращает значение переменной окружения, указанной в variable .



    Справочник и примеры языка PHP

    gethostbyaddr

    $hostname = gethostbyaddr($address);

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



    Справочник и примеры языка PHP

    gethostbyname

    Saddress = gethostbyname($hostname);

    Возвращает IP-адрес указанного в hostname хоста.



    Справочник и примеры языка PHP

    getiastmod

    $time = getlastmod();

    Возвращает время (в стандартном формате времени Unix) последнего изменения страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getimagesize

    $file_info_array = getimagesize($filename);

    Возвращает массив информации о графическом изображении в указанном filename. Первый элемент массива- ширина изображения, второй - высота, и третий - тип рисунка. В настоящее время распознаются типы GIF, JPG и PNG. Четвертым элементом является строка формата "width=xxx height=yyy", которая может непосредственно использоваться в теге HTML .



    Справочник и примеры языка PHP

    getlastaccess

    $time = getlastaccess();

    Возвращает дату и время (в стандартном формате Unix) последнего обращения к странице. Эта функция будет работать, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlastbrowser

    $browser = getlastbrowser();

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



    Справочник и примеры языка PHP

    getlastemail

    $email = getlastemail();

    Возвращает адрес электронной почты пользователя, который последним обращался к странице. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlasthost

    $host = getlasthost();

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



    Справочник и примеры языка PHP

    getlastref

    $url = getlastref();

    Возвращает URL узла, с которого пришел последний посетитель страницы. Эта функция работает, только если РНР был откомпилирован с опцией регистрации доступа.



    Справочник и примеры языка PHP

    getlogdir

    $directory = getlogdir();

    Возвращает каталог, в котором находятся журналы регистрации РНР.



    Справочник и примеры языка PHP

    getmypid

    $pid = getmypid();

    Возвращает идентификатор текущего РНР-процесса.



    Справочник и примеры языка PHP

    getmyuid

    $id = getmyuid();

    Возвращает идентификатор пользователя владельца HTML-файла, содержащего текущий скрипт.



    Справочник и примеры языка PHP

    getpid

    $pid = getpid()

    Возвращает идентификатор процесса (PID) программы Lite.



    Справочник и примеры языка PHP

    getpwnam

    $entry = getpwnam($username)

    Возвращает массив информации о пользователе с пользовательским именем username . В массиве имеются следующие поля:

  • Имя пользователя.
  • Пароль.
  • UID.
  • GID.
  • GECOS (полное имя и другая дополнительная информация).
  • Домашний каталог.
  • Оболочка.


  • Справочник и примеры языка PHP

    getpwuid

    $entry = getpwuid($UID)

    Возвращает массив, идентичный массиву, возвращаемому getpwnam для пользователя с пользовательским ID $UID.



    Справочник и примеры языка PHP

    getrandmax

    $number = getrandmax();

    Возвращает максимально возможное число, которое может вернуть функция rand.



    Справочник и примеры языка PHP

    getstartlogging

    $time = getstartlogging();

    Возвращает время (в стандартном формате Unix) начала регистрации на странице HTML, которая содержит текущий скрипт.



    Справочник и примеры языка PHP

    gettoday

    $hits = gettoday();

    Возвращает число обращений к данной странице, начиная с 0 часов текущих суток.



    Справочник и примеры языка PHP

    gettotal

    $hits = gettotal();

    Возвращает общее число обращений к текущей странице с начала регистрации доступа к странице.



    Справочник и примеры языка PHP

    gettype

    $type = gettype($variable);

    Возвращает одно из следующих значений: "integer", "double" или "string", указывающих на тип заданной переменной variable .



    Справочник и примеры языка PHP

    gmdate

    $formatted_date = gmdate($format, $time);

    Идентично Date за исключением того, что для обработки значений используется время по Гринвичу (GMT) вместо местного времени.



    Header

    header

    header($header_string);

    Выводит header_string как HTTP-заголовок. Эта функция должна использоваться перед любым HTML-текстом в файле и перед любыми командами РНР, которые выдают какой-либо результат.



    Hexdec

    hexdec

    $decimal = hexdec($hex);

    Возвращает десятичный эквивалент шестнадцатеричного аргумента hex.



    Htmlspecialchars

    htmlspecialchars

    $html_string = htmlspecialchars($string);

    Возвращает строку string, заменяя любые специальные символы (включая <, >, &, " и все ASCII-символы с кодами от 160 до 255) на соответствующие им HTML-коды.



    Imagearc

    imagearc

    imagearc($image, $сх, $су, $width, $height, $start, $end, $color);

    Рисует сектор эллипса в изображении image цветом, указанным в color. Центр эллипса находится в точке (сх, су), ширина указана аргументом width, высота- height, начальная и конечная точки указываются в градусах аргументами start и end соответственно.



    Imagechar

    imagechar

    imagechar($image, $size, $x, $y, $character, $color);

    Рисует символ character в изображении image цветом, назначенным в color, с размером шрифта size. Левый верхний угол символа находится в точке (х, у).



    Imagecharup

    imagecharup

    imagecharup($image, $size, $x, $y, $character, $color);

    Функция идентична imagechar за исключением того, что символ выводится вертикально, (х, у) указывают на координаты верхнего левого угла.



    Imagecolorallocate

    imagecolorallocate

    $color = imagecolorallocate($image, $red, $green, $blue);

    Возвращает цвет для работы с изображением image, используя указанные RGB-компоненты.



    Imagecolortransparent

    imagecolortransparent

    imagecolortransparent($image, $color);

    Устанавливает color как прозрачный цвет для изображения image.



    Imagecopyresized

    imagecopyresized

    imagecopyresized($dest_image, $src_image, $dest_x, $dest_y, $src_x, $src_y, $dest_width, $dest_heigth, $src_width, $src_heigth);

    Копирует прямоугольную область из изображения src_image в изображение dest_image , изменяя размер, если это необходимо. Аргументы dest_x и dest_y являются координатами левой верхней вершины прямоугольника в принимающем изображении, a dest_height и dest_width - его высотой и шириной. Аргументы src_x, src_y,' src_width, и src_heigth являются соответствующими значениями для изображения-источника.



    Imagecreate

    imagecreate

    $image = imagecreate($width, $height);

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



    Imagecreatefromgif

    imagecreatefromgif

    $image = imagecreatefromgif($filename);

    Возвращает идентификатор изображения, указывающий на изображение в заданном файле filename .



    Imagedestroy

    imagedestroy

    imagedestroy($image);

    Освобождает все ресурсы, занятые image.



    Imagefill

    imagefill

    imagefill($image, $х, $у, $color);

    Выполняет заливку изображения image цветом color, начиная с точки (х,у).



    Imagefilledpolygon

    imagefilledpolygon

    imagefilledpolygon($image, $points_array, $num_points, $color);

    Создает многоугольник в image, заполненный цветом color. Второй аргумент является массивом вершин многоугольника. Первые два элемента - это значения х и у первой вершины. Следующие два элемента— координаты следующей вершины и т. д. Третий аргумент указывает на число вершин многоугольника.



    Imagefilledrectangle

    imagefilledrectangle

    imagefilledrectangle($image, $х1, $у1, $х2, $у2, $color);

    Создает прямоугольник в image, заполненный цветом color. Аргументы х1 и у1 образуют верхнюю левую вершину прямоугольника, а х2 и у2 — правую нижнюю.



    Imagefilltoborder

    imagefilltoborder

    imagefilltoborder($image, $x, $y, $border, $color);

    Функция идентична imagefill за исключением того, что заливка цветом прекращается там, где встречается цвет border.



    Imagegif

    imagegif

    imagegif($image);

    imagegif($image, $filename);

    Выводит изображение image как рисунок GIF. Если указан второй аргумент, рисунок GIF будет записан в этот файл, иначе он будет направлен прямо в броузер.



    Imageinterlace

    imageinterlace

    imageinterlace($image, $interlace);

    Функция переключает бит чередования для изображения image на значение interlace , которое может быть равно 1 (включить) или 0 (выключить).



    Imageline

    imageline

    imageline($iraage, $х1, $у1, $х2, $у2, $color);

    Создает линию указанного в color цвета от точки (х1, у2) до точки (х2, у2) в изображении image.



    Imagepolygon

    imagepolygon

    imagepolygon($image, $points, $numpoints, $color);

    Функция идентична imagef illedpolygon за исключением того, что многоугольник не заполняется.



    Imagerectangle

    imagerectangle

    imagerectangle($image, $х1, $у1, $х2, $у2, $color);

    Функция идентична imagefilledrectangle за исключением того, что прямоугольник не заполняется.



    Imagesetpixel

    imagesetpixel

    imagesetpixel($image, $x, $y, $color);

    Рисует точку в изображении image в позиции (х, у) цветом, указанным в color.



    Imagestring up

    imagestring up

    imagestringup($image, Ssize, $x, $y, $string, $color);

    Функция идентична imagecharup за исключением того, что она выводит всю строку string.



    Imagestring

    imagestring

    imagestring($image, $size, $x, $y, $string, $color);

    Функция идентична imagechar за исключением того, что она выводит всю строку string.



    Imagesx

    imagesx

    $x_size = imagesx($image);

    Возвращает ширину в пикселах изображения, указанного в image.



    Imagesy

    imagesy

    $y_size = imagesy($image);

    Возвращает высоту изображения в пикселах.



    Include

    include

    include($filename);

    Вставляет файл, указанный в filename , в текущую страницу. Выполняется полный синтаксический PHP-анализ подключаемого файла. В поисках файла filename просматривается каждый из каталогов, указанных в переменной окружения PHP_INCLUDE_ PATH.



    IncludeFile

    includeFile

    includeFile($filename)

    Эта функция подключает файл filename к результату программы. Файл никак не изменяется и не анализируется.



    Initsyslog

    initsyslog

    initsyslog();

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



    Intval

    intval

    $integer = intval($variable);

    Возвращает содержимое variable в виде целого числа.



    Isset

    isset

    $defined = isset($variable);

    Возвращает 1, если переменная variable определена, иначе вернет 0.



    Key

    key

    $key = key($array);

    Возвращает ключ текущего элемента массива array. Для ассоциативного массива возвращает имя ключа. Для обычного массива возвращает номер элемента.



    Kill

    kill

    $result = kill($pid, $signal)

    Посылает сигнал signal процессу pid. Если операцию выполнить не удалось, возвращается отрицательное целое число.



    Link

    link

    link($target, $filename);

    Создает жесткую ссылку от filename к target.



    Linkinfo

    linkinfo

    $info = linkinfo($filename);

    Возвращает истинное значение, если ссылка, указанная в filename , существует (но не обязательно существует файл, на который указывает ссылка). В случае ошибки функция возвращает —1.



    Lite

    Lite

    Lite - это язык сценариев, используемый W3-mSQL. Его синтаксис очень похож на С и еще больше на Perl. Фактически, многие скрипты Lite синтаксически неотличимы от сценариев Perl. Однако Lite лишен многих расширенных возможностей Perl.

    Ниже приводится краткий справочник стандартных функций Lite, доступных при использовании W3-mSQL.



    Log

    log

    $result = log($number);

    Возвращает натуральный логарифм аргумента number.



    Возвращает логарифм по основанию 10

    log10

    $result = Iog10($number);

    Возвращает логарифм по основанию 10 аргумента number.



    Logas

    logas

    logas($filename);

    Регистрирует посещение текущей страницы как посещение указанного filename вместо файлового имени страницы.



    Mail

    mail

    mail($to, $subject, $message);
    mail($to, $subject, $message, $headers);

    Посылает электронное письмо по адресу, указанному в параметре to, с темой, указанной в параметре subject, и поместит в тело письма значение аргумента message . Если указан четвертый аргумент, он добавляется к заголовку письма.



    Max

    max

    $maximum = max($array);

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



    Возвращает хэш

    md5

    $hash = md5($string);

    Возвращает хэш (MD5) строки string .



    Microtime

    microtime

    $ms = microtime();

    Возвращает строку, содержащую часть текущей секунды (в виде десятичной дроби), за которой следует стандартное время Unix.



    Min

    min

    $minimum = min($array);

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



    Mkdir

    mkdir

    mkdir($directory, $mode);

    Создает каталог directory с указанным режимом mode, mode должно быть восьмеричным значением.



    Mktime

    mktime

    $time = mktime($hour,$minute,$second,$month,$day, Syear);

    Возвращает время в стандартном формате времени Unix, основываясь на заданных аргументах. Если указано менее шести параметров, параметры справа считаются соответствующими текущему значению времени (например, если дано четыре параметра, используются текущий день и год).



    MsqHieldflags mysql_fieldflags

    msqHieldflags mysql_fieldflags

    $flags = msql_fieldflags($result, $i);
    $flags = mysql_fieldflags($result, $i);

    Возвращает флаги для в i-того поля в result. Возвращаемое значение может быть одним из следующих: "primary key", "not null", "not null primary key" или << >>.



    MsqICIose

    msqICIose

    msqlClose($socket)

    Закрывает подключение, указанное сокетом socket.



    MsqIConnect

    msqIConnect

    $socket = msqlConnect($host)

    Подключается к серверу mSQL на хосте host. Возвращает номер соке-та, используемый для последующей связи с сервером баз данных. При неудаче возвращается отрицательное целое число.



    MsqIDataSeek

    msqIDataSeek

    msqlDataSeek($result, $location)

    Помещает 'указатель' для result среазу перед записью. Указав location 0, вы поместите указатель в начало данных. Следующий вызов msqlFetchRow выберет строку сразу после location.



    MsqIFieldSeek

    msqIFieldSeek

    msqlFieldSeek($result, Slocation)

    Функция изменяет 'указатель' на результат, возвращаемый msqllnitFieldList, так же как msqIDataSeek изменяет результат msqlStoreResult . ..

    MsqIFreeResult

    msqIFreeResult

    msqlFreeResult($result)

    Функция освобождает всю память, использованную результатом, выбранным из базы с помощью msqlStoreRcsult . Эту функцию необходимо вызывать для каждого результата, с которым вы закончили работать.



    MsqIListDBs

    msqIListDBs

    $databases = msqlListDBs($socket)

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



    MsqIListField

    msqIListField

    $tableinfo = msqlListField($result)

    Возвращает массив информации о следующем поле таблицы, созданной msqllnitFieldList , указываемой аргументом result. Каждый последующий вызов функции msqIListField выдает новый массив информации, пока не закончатся поля таблицы. Массив состоит из следующих полей:

  • Имя поля
  • Имя таблицы
  • Тип таблицы
  • Длина
  • Флаги


  • MsqIListTables

    msqIListTables

    $tables = msqlListTables($socket, $database)

    Возвращает массив имен доступных таблиц базы данных database на сервере, указанном аргументом socket.



    MsqINumRows

    msqINumRows

    msqlNumRows($result)

    Возвращает количество записей в данных, содержащихся в result.



    MsqIQuery

    msqIQuery

    $result = msqlQuery($socket, $query)

    Пытается послать запрос query к подключению, указанному аргументом socket. Если запрос не был успешно выполнен, возвращается отрицательное целое число.



    MsqISelectDB

    msqISelectDB

    $result = msqlSelectDB($socket, $database)

    Функция пытается подключить socket к базе данных, указанной аргументом database . Если попытка не удалась, возвращается отрицательное целое число.



    MsqIStoreResult

    msqIStoreResult

    $result = msqIStoreResult

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



    Msql_close mysql_close

    msql_close mysql_close

    msql_close(); mysql_close();

    Закрывает подключение к серверу базы данных mSQL/MySQL.



    Msql_connect mysql_connect

    msql_connect mysql_connect

    msql_connect($hostname);
    mysql_connect($hostname);
    mysql_connect($hostname, Susername);
    mysql_connect($hostname, $username, Spassword);

    Создает соединение с сервером базы данных mSQL/MySQL на указанном хосте hostname. Подключение к серверу на локальном хосте осуществляется с помощью m(y)sql_connect("localhost"). Если при первом вызове m(y)sql нет подключения к базе данных, подключение к локальному хосту создается автоматически. Для MySQL может быть указан необязательный аргумент username или комбинация username/ password. Если PHP запущен в расширенном режиме безопасности (называемом SAFE MODE), username должен принадлежать либо владельцу HTML-документа, либо владельцу процесса веб-сервера.



    Msql_createdb mysql_createdb

    msql_createdb mysql_createdb

    msql_createdb($database); mysql_createdb($database);

    Создает указанную базу данных.



    Msql_dbname mysql_dbname

    msql_dbname mysql_dbname

    $db = msql_dbname($result, $i);
    $db = mysql_dbname($result, $i);

    Вернет имя базы данных, хранящееся в i-том поле результата, возвращенного функцией m(y)sql_listdbs .



    Msql_dropdb mysql_dropdb

    msql_dropdb mysql_dropdb

    msql_dropdb($database);
    mysql_dropdb($database);

    Удаляет базу данных database и все ее таблицы.



    Msql_fieldlen mysql_fieldlen

    msql_fieldlen mysql_fieldlen

    $length =

    Msql_fieldlen($result $i);

    msql_fieldlen($result, $i);

    $length = mysql_fieldlen($result, $i);

    Возвращает длину i-го поля в result.



    Msql_fieldname mysql_fieldname

    msql_fieldname mysql_fieldname

    $name = msql_fieldname($result, $i);
    $name = mysql_fieldname($result, $i);

    Возвращает имя столбца i-го поля в result .-



    Msql_fieldtype mysql_fieldtype

    msql_fieldtype mysql_fieldtype

    $type = msql_fieldtype($result, $i);
    $type = mysql_fieldtype($result, $i);

    Возвращает тип i-го поля в result (то есть "char", "real" и т. д.).



    Msql_freeresult mysql_freeresult

    msql_freeresult mysql_freeresult

    msql_freeresult($result);
    mysql_freeresult($result);

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



    Msql_isttables mysql_listtables

    msql_isttables mysql_listtables

    $result = msql_listtables($database);
    $result = mysql_listtables($database);

    Возвращает указатель на результат, содержащий имена всех таблиц базы данных database . Функция m(y)sql_tablename может выбирать значения из этого указателя.



    Msql_listdbs mysql_listdbs

    msql_listdbs mysql_listdbs

    $result = msql_listdbs();
    $result = mysql_listdbs();

    Возвращает указатель на результат, содержащий список имен всех баз данных, доступных на сервере mSQL/MySQL. Функция m(y)sql_dbname может выбирать значения из этого указателя.



    Msql_listfields mysql_listfields

    msql_listfields mysql_listfields

    $result = msql_listfields($database, $table);
    $result = mysqllistfields($database, $table);

    Вернет указатель на результат, дающий информацию о полях таблицы table в назначенной базе данных. Функции m(y)sql_fieldflags , m(y)sql_fieldlen , m(y)sql_fieldname и m(y)sql_ fieldtype могут выбирать значения из этого указателя.



    Msql mysql

    msql mysql

    $result = msql($database, $query);
    $result = mysql($database, $query);

    Посылает запрос query базе данных mSQL/MySQL, указанной в аргументе database. Для не SELECT-запросов функция возвращает 0 для mSQL 1.x и MySQL, а для mSQL 2.x возвращает число измененных записей. Для запроса SELECT функция возвращает идентификатор результата, который может быть использован в других функциях msql_ *. В случае ошибки функция вернет -1.



    Msql_numfields mysql_numfields

    msql_numfields mysql_numfields

    $num_fields = msql_numfields($result);
    $nuni_fields = mysql_numfields($result);

    Возвращает число полей в result.



    Msql_nurn rows msql_numrows

    msql_nurn rows msql_numrows

    $num_rows = msql_numrows($result);
    $num_rows = mysql_numrows($result);_

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



    Msql_regcase

    msql_regcase

    $new_string = msql_regcase($string);

    Возвращает копию строки string, преобразованную в регулярное выражение, необходимое для выполнения поиска не зависящих от регистра совпадений в запросе mSQL.



    Msql_result mysql_result

    msql_result mysql_result

    $result_string = msql_result($result, $i, $field);
    $result_string = mysql_result($result, $1, $field);

    Данная функция возвращает значение из указанного поля field 1-й записи набора result. Аргумент field - это имя столбца, и он может быть указан как table, field для результирующих наборов, использующих соединения таблиц. В аргумент field допускается включение любой внутренней функции MySQL, которая может обрабатывать результаты SELECT, например, mysql_result ($result, $i, "length($field)") .



    MsqlEncode

    msqlEncode

    $string = msqlEncode($string)

    Функция возвращает перекодированную копию строки string, которую можно использовать в запросе mSQL.



    MsqlFetchRow

    msqlFetchRow

    $row = msqlFetchRow($result)

    Эта функция возвращает в виде массива следующую доступную запись из result.



    Msqljtablename mysql_tablename

    msqljtablename mysql_tablename

    $name = msql_tablename($result, $i);
    $name = mysql_tablename($result, $i);

    Вернет имя таблицы, хранящееся в i-м поле результата, возвращенного функцией m(y)sql_listtables .



    MsqllnitFieldList

    msqllnitFieldList

    $result = msqlInitFieldList($socket, $database, $table)

    Создает информационную таблицу о таблице table в базе данных database на сервере, указанном аргументом socket.



    My sql_af f ected_ro ws

    my sql_af f ected_ro ws

    $num_rows = mysql_affected_rows();

    Возвращает число записей, измененных последней из команд INSERT, UPDATE или DELETE.



    Mysql_insertjd

    mysql_insertjd

    $id_num = mysql_insert_id();

    Возвращает идентификационный номер, использовавшийся при последней команде INSERT, содержавшей поле auto_increment.



    Next

    next

    next($array);

    Перемещает указатель массива array на следующий элемент и возвращает текущий.



    Octdec

    octdec

    $decimal = octdec($octal);

    Возвращает десятичный эквивалент восьмеричного аргумента octal.



    Open

    open

    $fd = open($file, $mode)

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

    > Открыть файл для записи

    <Открыть файл для чтения
    <> Открыть файл для чтения или записи
    <Р Создать именованный канал и открыть его для чтения
    >Р Создать именованный канал и открыть его для записи

    <| Выполнить файл как команду и прочесть результаты

    >| Выполнить файл как команду и сделать запись в процесс



    Opendir

    opendir

    opendir($directory);

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



    Openlog

    openlog

    openlog($ident, $options, $facllity);

    Открывает для записи системный журнал. Эту функцию необходимо вызывать после initlog и до первого вызова syslog . Аргументы те же, что и при вызове системной функции Unix openlog . Значение ident предваряет каждую запись журнала и обычно является именем программы. Значение options может быть одним из следующих: LOG_CONS (выводить журнал на консоль, если произошла ошибка в стандартной процедуре); LOG_NDELAY (открыть журнал немедленно вместо ожидания первой записи журнала); LOG_PERROR (записывать также в stderr); LOG_PID (включать идентификатор процесса (PID) в каждую запись журнала). Можно комбинировать эти параметры с помощью побитового ИЛИ (например (LOG_DELAY | LOG_PERROR LOG_PID)). Facility - это один из установленных системой уровней журнализации (например, LOG_SYSLOG, LOG_USER, LOG_KERN и т. д.).



    Ord

    ord

    $number = ord($character);

    Возвращает ASCII-значение символа character.



    Parse_str

    parse_str

    parse_str($string);

    Разбирает строку URL в формате "переменная 1=значение1 &переменная2=значение2" и инициализирует переменные, присваивая им соответствующие значения. Программа РНР выполняет эту функцию автоматически для приходящих из форм данных в начале каждого скрипта.



    Passthru

    passthru

    passthru($command);
    passthru($command, $returevalue);

    Выполняет внешнюю команду command и выдает все результаты ее выполнения непосредственно броузеру. Если указан второй аргумент, туда помещается возвращаемое значение.



    Pclose

    pclose

    pclose($fd);

    Закрывает канал, открытый функцией рореп.



    Phpinfo

    phpinfo

    phpinfo();

    Печатает информационную страницу, полезную при отладке установки РНР. Это та же страница, которая печатается при добавлении "?info" к любому РНР URL, или если вы обращаетесь непосредственно к двоичным файлам РНР (то есть, http://www.myserver.com/cgi-bin/php).



    Phpversion

    phpversion

    $version = phpversion();

    Возвращает номер версии текущего запущенного РНР.



    Pid

    pid

    $pid = getppid()

    Возвращает идентификатор (PID) родительского для программы Lite процесса.



    Popen

    popen

    $fd = popen($command, $mode);

    Запускает внешнюю команду command и либо посылает ей данные (если установлен режим записи: mode = "w"), либо читает данные из команды (если в mode указать "r"). Любой файловый дескриптор, открытый таким образом, должен быть закрыт функцией pclose.



    Pos

    pos

    $position = pos($array['element']);

    Возвращает число - позицию указанного элемента ' element' в ассоциативном массиве а г ray.



    Pow

    pow

    $result = pow($x, $y);

    Возвращает х, возведенное в степень у.



    Prev

    prev

    Selement = prev($array);

    Перемещает внутренний указатель массива а г ray на предыдущий элемент и возвращает его.



    Printf

    printf

    printf($string [, arg, ... ])

    Работает как функция С (или Perl) с тем же именем. Значение переменных не подставляется; для ввода переменных в строку необходимо использовать стандартное для С форматирование '%s'.



    Putenv

    putenv

    putenv($string);

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



    Quote met a

    quote met a

    $quoted_string = quotemeta($string);

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



    Rand

    rand

    $number = rand();

    Возвращает случайное число в диапазоне от 0 и до числа RANDMAX, определяемого системой. Вы должны указать начальное число генератору случайных чисел, используя srand в начале вашего скрипта. Сделать это необходимо только один раз.



    Read

    read

    $data = read($fd, $length)

    Читает указанное в length число байт из заданного файлового дескриптора.



    Readdir

    readdir

    $file = readdir();

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



    Readfile

    readfile

    $filesize = readfile($filename);

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



    Readlink

    readlink

    $filename = readline($link);

    Возвращает путь к настоящему файлу, на который ссылается link. В случае ошибки функция вернет -1.



    Readln

    readln

    $line =readln($fd)

    Читает следующую строку из указанного файлового дескриптора.



    Readtok

    readtok

    $data = readtok($fd, $token)

    Функция читает данные из указанного файлового дескриптора, пока не встретит маркер token. Используется только первый символ из token.



    Reg_match

    reg_match

    $result = reg_match($expression, $string);
    $result = reg_match($expression, $string, $array);

    Функция идентична ereg. Она поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_replace

    reg_replace

    reg_replace($expression, $replacement, $string);

    Идентична ereg_replace. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Reg_search

    reg_search

    $partial_string = reg_search($expression, $string);
    $partial_string = reg_search($expression, $string, $array);

    Функция идентична ereg за исключением того, что она возвращает часть строки string , оставшуюся после первого совпадения. Если совпадения не обнаружено, функция возвращает пустую строку. Эта функция поддерживается только для обратной совместимости с предыдущими версиями РНР.



    Rename

    rename

    rename($oldfile, $newfile);
    Переименовывает oldfile в newfile .



    Reset

    reset

    reset($array);

    Перемещает внутренний указатель массива array на первый элемент и возвращает этот элемент.



    Return

    return

    return($value);

    Выходит из пользовательской функции и возвращает значение value.



    Rewind

    rewind

    rewind($fd);

    Устанавливает указатель файла f d в начало файла.



    Rewinddir

    rewinddir

    rewinddir();

    Передвигает указатель текущего каталога на начало каталога.



    Rmdir

    rmdir

    rmdir($directory);

    Удаляет каталог directory , если он пуст.



    Rsort

    rsort

    $sorted_array = rsort($array)

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



    SetContentType

    setContentType

    setContentType($string)

    Заменяет заданный по умолчанию тип содержимого HTML-страницы, содержащей скрипт, на значение, указанное в string. Эта функция должна быть самой первой строкой документа. Перед ней не должно быть даже пустой строки.



    Setcookie

    setcookie

    setcookie($name);

    setcookie($name, $value, $expire, $path, $domain, $secure);

    Посылает броузеру cookie с указанными атрибутами. Если задано только имя name, cookie с таким именем будет удален из броузера. Для пропуска одного из аргументов он может быть заменен на "" (или на 0 в случае с expire и secure).



    Seterrorreporting

    seterrorreporting

    seterrorreporting($value);

    Если значение value равно 0, выдача сообщений об ошибках отключается, иначе все сообщения выводятся в обычном режиме.



    Setlogging

    setlogging

    setlogging($value);

    Если значение value является ненулевым, журнализация доступа к текущей странице будет разрешена, иначе - запрещена.



    Setshowinfo

    setshowinfo

    setshowinfo($value);

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



    Settype

    settype

    settype($variable, $type);

    Устанавливает тип переменной variable в тип type, который может быть integer, double или string .



    Shl

    shl

    $value = shl($number, $b);

    Возвращает значение number, сдвинутое влево на заданное в b число бит.



    Shr

    shr

    $value = shr($number, $b);

    Возвращает значение number, сдвинутое вправо на заданное в b число бит.



    Sin

    sin

    $value = sin($number);

    Возвращает синус аргумента number (в радианах).



    Sleep

    sleep

    sleep($seconds);

    Останавливает обработку страницы на указанное количество секунд.



    Sort

    sort

    $sorted_array = sort($array)

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



    Soundex

    soundex

    $soundex_key =soundex($string);
    Возвращает ключ soundex строки string .



    Split

    split

    $strings = split($string, $token)

    Разделяет заданную строку на массив строк, используя как разделитель символ token..



    Sprintf

    sprintf

    $string = sprintf($format, $arg, [$arg, $arg, ...]);

    Возвращает форматированную строку format, в который каждый индикатор переменной в стиле С printf заменяется соответствующим значением arg. Можно указать до 5 аргументов.



    Sqrt

    sqrt

    $value = sqrl($number);

    Возвращает квадратный корень числа number.



    Srand

    srand

    srand($integer);

    Инициализирует генератор случайных чисел целочисленным аргументом integer. Эту функцию необходимо вызвать один (и только один) раз в начале любого скрипта, в котором вы используете функцию rand.



    Stat

    stat

    $stat = stat($file)

    Возвращает массив информации о файле file. В массиве содержатся следующие элементы:

  • Номер inode.
  • Режим файла.
  • Количество ссылок на файл.
  • UID.
  • GID.
  • Размер файла.
  • Atime.
  • Mtime.
  • Ctime.
  • Размер блока файловой системы (в байтах).
  • Количество используемых блоков файловой системы.


  • Strchr strstr

    strchr strstr

    $substring = strchr($string, $value);
    $substring = strstr($string, $value); .

    Возвращает часть строки string после первого обнаружения символа value в строке, strchr и strstr - идентичные функции, и включены обе для полноты.



    Strftime

    strftime

    $time = strftime($format, $time)

    Преобразует время Unix в текстовое представление времени, используя заданный формат format. Все описанные ниже последовательности в строке format заменяются на соответствующие им значения:



    День недели в виде местных сокращений названий дней недели.


    День недели в виде местных полных названий дней недели.
    %b

    Месяц в виде местных сокращенных названий.


    Месяц в виде местных полных названий месяцев.
    %d

    День месяца (01-31).
    %D

    День в виде % m/% d/% у.


    День месяца (1-31, перед числами первого десятка добавляется пробел).



    Час (00-23).

    %I

    Час (00-12).

    %j

    День в году (001-366).

    %h

    Часы (0-23, отделенные пробелами).

    %l

    Часы (1-12, отделенные пробелами).

    %m

    Номер месяца (01—12).

    %M

    Минуты (00-59).



    AM или РМ.

    %S

    Секунды (00-59).


    Время в виде % Н:% М:% S.

    %U

    Номер недели в году (01-52).

    %w

    День недели (0-6, воскресенье является 0).

    %y

    Год века (00-99).

    %Y

    Год, включая век (например 1999).



    Stripslashes

    stripslashes

    $plain_string = stripslashes($escaped_string);

    Удаляет все управляющие символы из строки escaped_string .



    Strlen

    strlen

    $length = strlen($string);
    Возвращает длину строки string .



    Strrchr

    strrchr

    $substring = strrchr($string, $character);

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



    Strseg

    strseg

    $string = strseg($string, $start, $end)

    Возвращает подстроку из указанной строки, которая начинается с позиции start и закачивается на позиции end от начала строки.



    Strtok

    strtok

    $substring = strtok($string, $characters);
    $substring = strtok($characters);

    Разделяет строку string на подстроки, используя в качестве разделителя любой символ, указанный в characters . После первого вызова strtok не указывайте строковый аргумент в последующих вызовах, в этом случае функция вернет каждую удачно выделенную подстроку, пока не будет достигнут конец string .



    Strtolower

    strtolower

    $lc_string = strtolower($string);

    Возвращает string , где все символы преобразованы в символы нижнего регистра.



    Strtoupper

    strtoupper

    $uc_string = strtoupper($string);

    Возвращает string , где все символы преобразованы в символы верхнего регистра.



    Strtr

    strtr

    strtr($string, $set1, $set2);

    Все символы в строке string, которые входят в набор setl, функция преобразует в соответствующие символы в наборе set2. Если set1 длиннее set2, последний символ из set2 используется для "лишних" символов из set1. Если set2 длиннее set1, "лишние" символы из set2 игнорируются.



    Strval

    strval

    $string = strval($variable);

    Возвращает переменную variable в виде строкового значения.



    Sub

    sub

    $string = sub($string, $ехр1, $ехрr2)

    Заменяет любые вхождения exprl в string на значение ехрг2. Значения exprl и ехрг2 могут быть разными по длине, строка string автоматически будет укорочена либо удлинена.



    Substr

    substr

    $substring = substr($string, $start, Slength);

    Возвращает часть строки string , которая начинается с позиции start (0 является первым символом) и имеет длину в length символов.



    Symlink

    symlink

    symlink($target, $filename);

    Создает символическую связь (ссылку) от filename к target.



    Syslog

    syslog

    syslog($level, $message);

    Записывает сообщение message в системный журнал с уровнем level.



    System

    system

    $results = system($command);

    $results = system($command, $return_value);

    Выполняет указанную внешнюю команду command и возвращает все результаты. Если задан второй аргумент, туда записывается возвращаемое значение (код возврата) команды.



    Tan

    tan

    $value = tan($number);

    Возвращает тангенс аргумента number (в радианах).



    Tempnam

    tempnam

    $filename = tempnam($path, $prefix);

    Возвращает имя файла с префиксом prefix, который будет уникальным в каталоге, указанном в path.



    Time

    time

    $time = time();

    Возвращает текущее время в стандартном формате времени Unix (число секунд после 1 января 1970 года).



    Tr...

    tr

    $string = tr($string, $list1, $list2)

    Функция замещает все символы из списка listl, которые находит в строке string, их эквивалентом в списке list2 (например, tr("Robby", "oy", "ai") вернет строку "Rabbi"). Список символов может содержать диапазон символов, разделенный "-". В частности, tr("e.e. cummings", "a-z," "A-Z") вернет строку "E.E. CUMMINGS."



    Truncate

    truncate

    $result = truncate($fale, $length)

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



    Umask

    umask

    $umask = umask();
    umask($umask);

    Возвращает текущую маску umask, если аргумент не указан. Если аргумент umask указан, устанавливает umask в указанное значение (которое должно быть восьмеричным числом).



    Uniqid

    uniqid

    $result = uniqid();

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



    Unlink

    unlink

    unlink($filename);
    Удаляет указанный файл.



    Unset

    unset

    unset($variable);

    Сбрасывает значение указанной переменной, которая может быть элементом массива. При применении данной функции к массиву удаляется весь массив.



    UrIEncode

    urIEncode

    $string = urlEncode($string)

    Эта функция возвращает копию строки string , которая перекодирована для безопасной вставки в URL.

    Urldecode

    urldecode

    $decoded_string = urldecode($string);

    Возвращает копию строки string, в которой все экранированные спецсимволы URL раскодируются в их значения. Это делается автоматически для всех входящих данных.



    Urlencode

    urlencode

    $encoded_string = urlencode($string);

    Возвращает копию строки string, в которой все спецсимволы закодированы для использования в URL.



    Usleep

    usleep

    usleep($ms);

    Задерживет синтаксический анализ скрипта на заданное в ms число микросекунд.



    Virtual

    virtual

    virtual($filename);

    Подключает файл filename точно так же, как в обычном файле HTML это делает тег [an error occurred while processing this directive] . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн


    . Эта функция полезна только вместе с веб-сервером Apache.



    Справочник и примеры языка PHP

    MsqICIose

    msqICIose

    int msqICIose ( int sock )

    Закрывает подключение к серверу баз данных mSQL.



    MsqIConnect

    msqIConnect

    int msqIConnect ( char*host )

    Создает подключение к серверу mSQL с указанным именем хоста или IP-адресом. Если в аргументе передать пустое значение, будет создано подключение к серверу mSQL на локальном хосте, с использованием сокетов Unix. Функция возвращает описатель базы данных, применяемый для связи с сервером баз данных. В случае ошибки вернется — 1.



    MsqIFetchField

    msqIFetchField

    m_field "msqIFetchField ( m_result*result )

    Возвращает информацию о полях в результирующем наборе. Каждый успешный вызов функции msqIFetchField вернет структуру m_f ield для очередного поля, пока полей больше не останется, и тогда будет возвращено пустое значение.



    MsqIFetchRow

    msqIFetchRow

    m_row msqIFetchRow ( m_result*result )

    Выбирает одну запись из результирующего набора. Данные помещаются в структуру m_row, которая является массивом символьных строк. Каждый успешный вызов функции msqIFetchRow возвращает следующую запись до тех пор, пока не будет достигнут конец набора, тогда будет возвращено нулевое значение.



    MsqIFreeResult

    msqIFreeResult

    void msqIFreeResult ( m_result*result )

    Освобождает память, связанную со структурой m_result.



    MsqIListDBs

    msqIListDBs

    m_result *msqlListDBs ( int sock )

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



    MsqIListFields

    msqIListFields

    m_result 'msqIListFields ( int sock , char*tableName )

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



    MsqIListlndex

    msqIListlndex

    m_result 'msqIListlndex ( int sock , char*tableName , char*index )

    Возвращает структуру m_result, содержащую информацию о заданном индексе. Возвращаемый набор данных будет содержать тип индекса (в настоящее время поддерживается только тип 'avl') и содержащиеся в индексе имена полей. Как и все структуры m_result, значение, возвра щаемое этой функцией, должно быть освобождено с помощью msqlFreеResult после завершения работы с ним.



    MsqIListTables

    msqIListTables

    m_result *msqIListTables ( int sock )

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



    MsqINumRows

    msqINumRows

    int msqINumRows ( m_result*result )

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



    MsqIQuery

    msqIQuery

    int msqlQuery( int sock , char*query )

    Выполняет указанный SQL-запрос. В mSQL 2 в возвращаемом значении содержится количество записей, измененных запросом (или выбранных запросом SELECT). В mSQL 1 при успешном выполнении возвращается ноль. В случае ошибки обе версии возвращают — 1.



    MsqISelectDB

    msqISelectDB

    int msqISelectDB ( int sock , char*dbName )

    Выбирает базу данных для указанного подключения. Базу данных необходимо выбрать до того, как будут посланы любые запросы к серверу баз данных. В случае ошибки возвращается — 1.



    MsqIStoreResult

    msqIStoreResult

    m_result *msqlStoreResult()

    Сохраняет результат запроса SELECT. Эту функцию вызывают сразу после вызова msqIQuery с запросом SELECT. Результаты запроса сохраняются в структуре m_result. Новые запросы посылаются серверу баз данных только после вызова этой функции. Каждая структура m_result должна быть освобождена с помощью msqlFreeResult по завершении работы с ней.



    MSQLCAPI

    mSQLCAPI

    API для языка С в mSQL версии 2 не имеет принципиальных отличий от реализации в mSQL 1. Однако были добавлены некоторые новые функции, и было внесено несколько изменений в уже существующие функции. Если функция может быть использована только в mSQL 2, на это обращается особое внимание.



    MsqlDataSeek

    msqlDataSeek

    void msqlDataSeek ( m_result* result, int pos )

    Устанавливает курсор, указывающий функции msqIFetchRow, .какую строку выбирать при следующей операции. Установив курсор в позицию 0, вы переместите его в начало данных. Установив курсор в позицию после последней записи, вы поместите его в конец данных.



    MsqlFieldSeek

    msqlFieldSeek

    void msqlFieldSeek ( m_result*result , int pos )

    Устанавливает курсор, указывающий функции msqlFetchField какое поле выбирать в следующий раз. Установив курсор в позицию после последнего поля, вы, собственно, установите его просто после последнего поля.



    MsqlNumFields

    msqlNumFields

    int msqlNumFields ( m_result* result )

    Возвращает число полей в результирующем наборе.



    My sql_affected_ro ws

    my sql_affected_ro ws

    my_ulonglong mysql_affected_rows(MYSQL*mysql)

    Возвращает число записей, измененных последним запросом. При использовании с запросом SELECT эта функция идентична mysql_num_rows (вернет число записей в результирующем наборе). С остальными запросами функция может быть использована после вызова mysql_query, которая послала запрос.



    Mysq l_esca pe_strin g

    mysq l_esca pe_strin g

    unsigned int mysql_escape_string(char*to, const char "from, unsigned int

    length)

    unsigned int mysql_escape_string(char*to, const char *from)

    Кодирует строку таким образом, что ее можно безопасно вставить в таблицу MySQL. Первый аргумент - это получающая строка, которая должна быть по крайней мере на один символ больше двойной длины исходной строки, задаваемой вторым аргументом (то есть to >= from*2+l). Если есть третий аргумент, он указывает количество байт, копируемое из исходной строки перед кодированием. Функция возвращает число байт в кодированной строке, исключая цустой символ в конце строки.



    Mysq l_get_proto_i nf о

    mysq l_get_proto_i nf о

    unsigned int mysql_get_proto_info(MYSQtmysql)

    Возвращает в виде целого числа версию протокола MySQL, используемого в текущем подключении.



    Mysql_close

    mysql_close

    void mysql_close(MYSQL*mysql)

    Завершает соединение с сервером баз данных MySQL. Если при разрыве соединения возникли проблемы, сообщение об ошибке можно посмотреть, используя функцию mysql_err.



    Mysql_connect

    mysql_connect

    MYSQL *mysql_connect(MYSQL*mysql, const char*host, const char*user, const char *passwd)

    Создает подключение к серверу баз данных MySQL. Первым параметром должна быть предварительно объявленная структура MYSQL. Второй параметр - это имя хоста или IP-адрес сервера MySQL. Если хост задан пустой строкой или как localhost, будет выполнено подключение к серверу MySQL на той же машине. Последние два параметра -это используемые для подключения имя пользователя и пароль. Пароль вводится открытым текстом и не шифруется. Функция возвращает структуру MYSQL, переданную первым аргументом, либо NULL, если соединение не было установлено. (Так как структура содержится в аргументе, единственное применение возвращаемого значения - это проверка успешности подключения.)

    Эта функция потеряла значение в последних версиях MySQL, вместо нее следует пользоваться функцией mysql_real_connect.



    Mysql_create_db

    mysql_create_db

    int mysql_create_db(MYSQL*mysql, const char*db)

    Создает полностью новую базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL CREATE DATABASE. Следует использовать его с помощью функции mysql_query.



    Mysql_data_seek

    mysql_data_seek

    void mysql_data_seek(MYSQL_RES*res, unsigned int offset)

    Передвигает курсор на определенную запись в наборе записей. Первый аргумент является структурой MYSQL_RES, которая содержит записи. Второй аргумент указывает на номер записи, которую вы хотите найти. Номер первой записи - 0. Эта функция работает, только если данные были выбраны с помощью mysql_store_ result.



    Mysql_debug

    mysql_debug

    mysql_debug(char *debug)

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



    Mysql_drop_db

    mysql_drop_db

    int mysql_drop_clb(MYSQL*mysql, const char*db)

    Уничтожает базу данных с указанным именем. Функция вернет ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.

    Эта функция потеряла значение в последних версиях MySQL. Теперь MySQL поддерживает оператор SQL DROP DATABASE. Его следует использовать через mysql_query вместо функции mysql_drop_db.



    Mysql_dump_debug_info

    mysql_dump_debug_info

    int mysql_dump_debug_info(MYSQL*mysql)

    Эта функция заставляет сервер баз данных записывать отладочную информацию о текущем подключении в свои журнальные файлы. Для использования этой функции у вас должно быть право Process для текущего подключения. Функция вернет ноль в случае успешного выполнения операции и ненулевое значение в случае ошибки.



    Mysql_eof

    mysql_eof

    my_bool mysql_eof(MYSQL_RES* result)

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



    Mysql_errno

    mysql_errno

    unsigned int mysql_errno(MYSQL*mysql)

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



    Mysql_error

    mysql_error

    char *mysql_error(MYSQL*mysql)

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



    Mysql_fetch_field_direct

    mysql_fetch_field_direct

    MYSQL_FIELD * mysql_fetch_field_direct(MYSOL_RES * result, unsigned int fieldnr)

    Эта функция идентична mysql_fetch_field за исключением того, что вместо цикла по полям вы указываете, какое поле проверить. Номер первого поля в наборе - 0.



    Mysql_fetch_field

    mysql_fetch_field

    MYSQL_FIELD*mysql_fetch_field(MYSQL_RES* result)

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



    Mysql_fetch_fields

    mysql_fetch_fields

    MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES* result)

    Функция идентична mysql_fetch_field за исключением того, что она возвращает массив структур MYSQL_FIELD, содержащих информацию о каждом поле в результирующем наборе.



    Mysql_fetch_lengths

    mysql_fetch_lengths

    unsigned long *mysql_fetch_lengths(MYSQL_RES*result)

    Возвращает массив длин каждого поля в текущей записи. В случае ошибки функция возвращает нулевое значение. Вы должны выбрать хотя бы одну запись (используя mysql_fetch_row) перед вызовом этой функции. Эта функция является единственным способом выяснить длину полей переменной длины, таких как BLOB и VARCHAR, перед использованием данных.



    Mysql_fetch_row

    mysql_fetch_row

    MYSQL_ROW mysql_fetch_row(MYSQL_RESresult)

    Выбирает следующую запись в наборе и возвращает ее как структуру MYSQL__ROW. Если записей больше нет или в случае ошибки, возвращается нулевое значение. В текущей реализации структура MY.SQI _ROW - это массив символьных строк, который может представлять любые данные.



    Mysql_field_seek

    mysql_field_seek

    MYSQL_FIELD_OFFSET mysql_field_seek(MYSQL_RES *result, MYSQL_FIELD_OFFSET offset)

    Ищет указанное поле в текущей записи результирующего набора. Позиция, установленная этой функцией, используется при вызове mysql_fetch_field. Переданное значение MYSQL_FIELD_OFFSET должно быть значением, возвращаемым функцией mysql_field_tell (или другим вызовом mysql_f ield_seek). Если это значение равно 0, поиск будет осуществляться с начала записи. Функция возвращает позицию курсора перед вызовом функции.



    Mysql_field_tell

    mysql_field_tell

    MYSQL_FIELD_OFFSET mysql_field_tell(MYSQL_RESresult)

    Возвращает значение текущей позиции поля в текущей записи результирующего набора. Это значение используется с mysql_f ield_seek.



    Mysql_free_result

    mysql_free_result

    void mysql_free_result(MYSQL_RESresult)

    Освобождает память, связанную со структурой MYSQL_RES. Эту операцию следует всегда выполнять при завершении использования структуры этого типа или при других проблемах с памятью.



    Mysql_get_client_info

    mysql_get_client_info

    char *mysql_get_client_info(void)

    Возвращает строку с версией библиотеки MySQL, используемой клиентской программой.



    Mysql_get_host_jnfo

    mysql_get_host_jnfo

    char *mysql_get_host_info(MYSQL*mysql)

    Возвращает строку, содержащую имя хоста сервера баз данных MySQL и тип используемого подключения (например, Unix-сокет или TGP).



    Mysql_get_server_info

    mysql_get_server_info

    char *mysql_get_server_info(MYSQL*mysql)

    Возвращает строку, содержащую номер версии сервера баз данных MySQL, используемого в текущем подключении.



    Mysql_init

    mysql_init

    MYSQL *mysql_init(MYSQL*mysql)

    Инициализирует структуру MYSQL, используемую для создания подключения к серверу баз данных MySQL. Наряду с mysql_real_connect, это является способом инициализации подключения к серверу. Вы передаете этой функции объявленную структуру MYSQL либо пустой указатель, в случае чего структура MYSQL будет создана и возвращена. Созданные этой функцией структуры корректно освобождаются функцией mysql_close. Если для инициализации структуры не хватило памяти, возвращается нулевое значение.



    Mysql_kill

    mysql_kill

    int mysql_kill(MYSQL*mysql, unsigned long pid)

    Пытается завершить поток сервера MySQL с указанным ID процесса (PID). Эта функция возвращает ноль в случае успешного выполнения операции и ненулевое значение в случае неудачи. Чтобы воспользоваться этой функцией, вы должны иметь право Process для текущего подключения.



    Mysql_list_dbs

    mysql_list_dbs

    MYSQL_RES*mysql_list_dbs(MYSQL*mysql, const char*wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих баз данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будут возвращены имена всех баз данных. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_fields

    mysql_list_fields

    MYSQL_RES *mysql_list_fields(MYSQL*mysql, const char*table, const char *wild)

    Возвращает структуру MYSQL_RES, содержащую имена всех существующих полей в указанной таблице, которые удовлетворяют выражению, переданному третьим аргументом. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель, будет возвращен список имен всех полей. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_free_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_processes

    mysql_list_processes

    MYSQL_RES*mysql_list_processes(MYSQL*mysql)

    Возвращает структуру MYSQL_RES, содержащую информацию о всех текущих потоках, запущенных на сервере баз данных MySQL. Эта информация может быть использована с mysql_kill для завершения потоков, вызывающих ошибки. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_list_tables

    mysql_list_tables

    MYSQL_RES*mysql_list_tables(MYSQL*mysql, const char*wild)

    Возвращает-структуру MYSQL_RES, содержащую имена всех существующих таблиц в текущей базе данных, которые отвечают выражению, заданному во втором аргументе. Этот аргумент может быть любым стандартным регулярным выражением SQL. Если передать нулевой указатель вместо выражения, будет возвращен список имен всех таблиц. Как и все структуры MYSQL_RES, значение, возвращаемое этой функцией, должно быть освобождено с помощью mysql_f ree_result. Эта функция возвращает нулевое значение в случае ошибки.



    Mysql_num_fields

    mysql_num_fields

    unsigned int mysql_num_fields(MYSQL_RESresult)

    Возвращает число полей, содержащееся в каждой записи указанного результирующего набора.



    Mysql_num_rows

    mysql_num_rows

    int mysqi_num_rows(MYSQL_RESresult)

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



    Mysql_ping

    mysql_ping

    int mysql_ping(MYSQL*mysql)

    Проверяет статус подключения к серверу MySQL. Если подключение не активно, клиент попытается автоматически восстановить его. Эта функция возвращает ноль, если подключение активно, и ненулевое значение в случае ошибки.



    Mysql_query

    mysql_query

    int mysql_query(MYSQL*mysql, const char"query)

    Выполняет SQL-запрос, заданный вторым аргументом. Если запрос содержит любые двоичные данные (особенно пустой символ (null)), эту функцию использовать невозможно, и следует пользоваться функцией mysql_real_query. Функция возвращает ноль, если запрос был выполнен успешно, и ненулевое значение в случае ошибки.



    Mysql_real_connect

    mysql_real_connect

    MYSQL *mysql_real_connect(MYSQL*mysql, const char*host, const char *user,

    const char *passwd, const char*db, uint port, const char*unix_socket, uint client_flag)

    Создает соединение с сервером баз данных MySQL. У этой функции есть восемь аргументов:

  • Инициализированная структура MYSQL, созданная с помощью mysql_init.
  • Имя хоста или IP-адрес сервера баз данных MySQL (для локального подключения к серверу MySQL через сокет Unix можно использовать пустую строку или localhost).
  • Имя пользователя, используемое при подключении к серверу баз данных (пустой строкой можно указать на использование логина пользователя, запустившего клиента).
  • Пароль, используемый для идентификации указанного пользователя. Если используется пустая строка, будет производиться аутентификация только пользователей без пароля.
  • Начальная база данных, используемая при подключении (чтобы не выбирать при подключении начальную базу данных, можно передать пустую строку).
  • Порт, используемый для удаленного подключения к серверу баз данных MySQL по протоколу TCP (чтобы принять порт по умолчанию, можно передать 0).
  • Имя сокета Unix для подключения к серверу на локальном компьютере (чтобы принять сокет по умолчанию, можно использовать пустую строку).
  • Ноль или более из набора флагов, используемых при особых обстоятельствах:
  • CLIENT_FOUND_ROWS

    При использовании запросов, изменяющих данные, возвращать не число измененных записей, а число записей, найденных в таблице.

    CLIENT_NO_SCHEMA

    Запретить клиенту использование полной формы указания на столбец базы данных database, table.column , чтобы скрыть структуру базы данных.

    CLIENT_COMPRESS

    Использовать сжатие при соединении с сервером.
    CLIENT_ODBC

    Указать серверу, что клиент является подключением ODBC.



    Mysql_real_query

    mysql_real_query

    int mysql_real_query(MYSQL*mysql, const char*query, unsigned int length)

    Выполняет SQL-запрос, заданный вторым аргументом. В третьем аргументе должна быть указана длина запроса. Указав длину, вы можете использовать в запросе двоичные данные, включая пустые (null) символы. Эта функция действует быстрее, чем mysql_query. Функция возвращает ноль, если запрос был успешно выполнен, и ненулевое значение в случае ошибки.



    Mysql_reload

    mysql_reload

    int mysql_reload(MYSQL*mysql)

    Перегружает таблицу привилегий на сервере баз данных MySQL. Для использования этой функции вы должны иметь право Reload для текущего подключения. Функция возвращает ноль, если операцию удалось выполнить, иначе возвращается ненулевое значение.



    Mysql_row_tell

    mysql_row_tell

    unsigned int mysql_row_tell(MYSQL_RESresult)

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



    MySQL С API

    MySQL С API

    MySQL С API кроме стандартных типов данных языка С использует некоторые свои типы данных. Они определены в заголовочном файле 'mysql.h', который необходимо подключать при компиляции всех программ, использующих библиотеку MySQL.



    Mysql_select_db

    mysql_select_db

    int mysql_select_db(MYSQL*mysql, const char*db)

    Изменяет текущую базу данных. Пользователь должен иметь права доступа к новой базе данных. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_shutdown

    mysql_shutdown

    int mysql_shutdown(MYSQL*mysql)

    Выключает сервер баз данных MySQL. Для использования этой функции пользователь должен иметь право Shutdown для текущего подключения. Функция возвращает ноль, если операция была успешно выполнена, и ненулевое значение в случае ошибки.



    Mysql_stat

    mysql_stat

    char *mysql_stat(MYSQL*mysql)

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



    Mysql_store_result

    mysql_store_result

    MYSQL_RES *mysql_store_result(MYSQL*mysql)

    Читает весь результат запроса и сохраняет его в структуре MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться либо эта функция, либо mysql_use_result. Вы должны вызвать mysql_f ree_result для освобождения структуры MYSQL_RES после завершения работы с ней. Функция возвращает нулевое значение в случае ошибки.



    Mysql_thread_id

    mysql_thread_id

    unsigned long mysql_thread_id(MYSQL* mysql)

    Возвращает ID потока текущего подключения. Это значение может использовать mysql_kill для завершения подключения в случае ошибки.



    Mysql_use_result

    mysql_use_result

    MYSQL_RES*mysql_use_result(MYSQL*mysql)

    Читает результат запроса построчно и позволяет получить доступ к данным через структуру MYSQL_RES. Для доступа к возвращаемым из запроса данным должна использоваться или эта функция, или mysql_store_result. Так как эта функция не читает весь набор данных за один раз, она более быстрая, чем mysql_store_result, и более эффективно использует память. Однако при использовании этой функции вы должны прочесть все записи из набора данных, иначе следующий запрос получит оставшиеся данные. Также вы не сможете выполнять другие запросы до окончания работы с данными из этого запроса. После завершения работы с ними следует вызвать mysql_f ree_result для освобождения структуры MYSQL_RES. Функция возвращает нулевое значение в случае ошибки.



    Mysqljnfo

    mysqljnfo

    char *mysql_info(MYSQL*mysql)

    Возвращает строку, содержащую информацию о последнем запросе, если этот запрос был одним из указанных ниже. В настоящее время дополнительную информацию через эту функцию выдают следующие SQL-запросы: INSERT INTO (при использовании с оператором SELECT); LOAD DATA INFILE; ALTER TABLE; INSERT INTO TABLE (при использовании с множеством записей). Если последний запрос не имел дополнительной информации (например, это был один из других запросов), функция возвращает нулевое значение.



    Mysqljnsertjd

    mysqljnsertjd

    my_ulonglong mysql_insert_id(MYSQL*mysql)

    Вернет последнее число, сгенерированное для поля AUTO_INCREMENT. Данная функция обычно используется сразу после ввода значения в поле AUTO_INCREMENT, чтобы выяснить значение, которое было введено.



    Если операция INSERT удалась, переменная

    Пример

    /* Вставить запись в таблицу 'people' */

    mysql_query(&mysql, "INSERT INTO people VALUES ('', 'Illyana Rasputin',

    16)";

    num = fflysql_affected_rows(&mysql);

    /* Если операция INSERT удалась, переменная num должна быть равна 1, и -1, если произошла ошибка */



    HoMep последней ошибки:

    Пример

    error = mysql_errno(&mysql);

    printf(" HoMep последней ошибки: %d\n", error);



    Последняя ошибка была:

    Пример

    printf(" Последняя ошибка была: '%s'\n", mysql_error(&mysql));



    enc_name теперь будет содержать

    Пример

    char name[15] = "Bob Marley's";

    char enc_name[31];

    mysql_escape_string(enc_name, name);

    /* enc_name теперь будет содержать "Bob Marley\'s" (единичная кавычка

    закодирована).



    Здесь вы можете проверить информацию

    Пример

    MYSQL_FIELD*field;

    while((field = mysql_fetch_field(results)))

    {

    /* Здесь вы можете проверить информацию о поле */

    }



    о третьем поле

    Пример

    MYSQL_FIELD *field;

    /* Получить информацию о третьем поле в наборе записей */
    field = mysql_fetch_field_direct(results, 2);



    Приписать третье поле переменной

    Пример

    MYSQL_FIELD 'field; MYSQL_FIELD 'fields;

    /* Получить всю информацию о полях в наборе записей */
    fields = mysql_fetch_fields(results);

    /* Приписать третье поле переменной 'field' */
    field = fields[2];



    Tpetbe поле имеет длину

    Пример

    unsigned long *lengths;

    row = mysql_fetch_row(results);
    lengths = mysql_fetch_lengths(results);
    printf(" Tpetbe поле имеет длину %d байт\n", lengths[2]);



    в третьем поле этой записи:

    Пример

    MYSQL_ROW row;

    row = mysql_fetch_row(results);

    printf("Данные в третьем поле этой записи: %s\n", row[2]);



    Выбрать первое поле записи

    Пример

    MYSQL_FIELD field;

    /* Перейти к началу записи */
    old_pos = mysql_field_seek(results, 0);
    /* Выбрать первое поле записи */
    field = mysql_field_field(results);
    /* Вернуться к исходному состоянию */
    mysql_field_seek(results, old_pos);



    Выбрать еще три поля

    Пример

    MYSQL_FIELD fieldl, field2, fieldS;

    /* Запомнить текущую позицию */
    old_pos = mysql_field_tell(results);

    /* Выбрать еще три поля */
    field1 = mysqLfield_field(results);
    field2 = mysql_field_field(results);
    field3 = mysql_field_field(results);
    /* Вернуться к исходной позиции */
    mysql_field_seek(results, old_pos);



    Теперь подключение должно быть завершено

    Пример

    mysql_close(&mysql);

    /* Теперь подключение должно быть завершено */



    Выполнить операции

    Пример

    MYSQL_RES "results;

    /* Выполнить операции с результатами */

    mysql_free_result(results);



    Этa программа использует клиентскую библиотеку

    Пример

    printf(" Этa программа использует клиентскую библиотеку MySQL версии %s\n",

    mysql_get_client_info()));



    о подключении:

    Пример

    print("Информация о подключении: %s", mysql_get_host_info(&mysql));



    Этo подключение использует протокол соединений

    Пример

    printf(" Этo подключение использует протокол соединений MySQL версии %d\n",

    mysql_get_proto_info());



    к серверу MySQL версии

    Пример

    printf("Bы подключены к серверу MySQL версии %s\n", mysql_get__server_info(&mysql);



    Только что был послан запрос

    Пример

    /* Только что был послан запрос LOAD DATA INFILE, загрузивший набор записей из файла

    в существующую таблицу */ printf("Результат загрузки данных: %s\n", mysql_info(&mysql));



    Ошибка инициализации клиента

    Пример

    MYSQL mysql;

    if (!mysql_init(&mysql)) {

    printf(" Ошибка инициализации клиента MySQL\n");

    exit(1); }



    Мы только что ввели запись

    Пример

    /* Мы только что ввели запись о сотруднике с автоматически генерируемым ID в

    таблицу */

    id = mysql_insert_id(&mysql);
    printf(''Новый сотрудник получил ID %d\n", id);



    Завершить поток

    Пример

    /* Завершить поток с номером 4 */
    result = mysql_kill(&mysql, 4);



    теперь содержит имена всех баз

    Пример

    MYSQL_RES databases;

    databases = mysql_list_dbs(&mysql, (char*)MULL);
    /* 'databases' теперь содержит имена всех баз данных на сервере MySQL */



    к локальному серверу MySQL, используя

    Пример

    /* Создать подключение к локальному серверу MySQL, используя имя "bob" и

    пароль "mypass" */ MYSQL mysql;
    if(!mysql_connect(&mysql, "", "bob", "mypass")) {

    printf("Oшибкa при подключении!\n");

    exit(0); }
    /* Если мы дошли сюда, значит, успешно подключились к серверу баз данных*/



    теперь содержит имена всех полей

    Пример

    MYSQL_RES fields;

    fields = mysql_list_fields(&mysql, "people", "address%");
    /* 'fields' теперь содержит имена всех полей в таблице 'people', начинающихся с 'address' */



    MYSQL_RES threads

    Пример

    MYSQL_RES threads;

    threads = mysql_list_processes(&mysql);



    теперь содержит имена всех таблиц

    Пример

    MYSQL_RES tables;

    tables = mysql_list_tables(&mysql, "p%");

    /* 'tables' теперь содержит имена всех таблиц в текущей базе данных, начинающиеся с 'р' */



    d fields in each

    Пример

    num_fields = mysql_num_fields(results);

    printf("There are % d fields in each row\n", num_fields);



    Было возвращено

    Пример

    num_rows = mysql_num_rows(results);

    printf(" Было возвращено %d записей \n", num_rows);



    попытка повторного

    Пример

    while(mysql_ping(&mysql))
    printf("Ошибка, попытка повторного подключения...\n");



    SELECT FROM people WHERE name

    Пример

    error = mysql_query(&mysql, " SELECT FROM people WHERE name like

    'Bill%'");

    if (error) {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    к серверу на локальном хосте,

    Пример

    /* Подключиться к серверу на локальном хосте, используя стандартные

    параметры. */

    if (! mysql_real_connect(&mysql, "localhost", "bob", "mypass", "", 0, 0))
    {
    print "Ошибка подключения!\n";

    exit(1); }



    SELECT FROM people WHERE name

    Пример

    error = mysql_real_query(&ntysql, " SELECT FROM people WHERE name like Bill%'",

    44);
    if (error)
    {

    printf("Ошибка при выполнении запроса!\n");

    exit(1);
    }



    Пример result = mysql_reload(&mysql);

    Пример

    result = mysql_reload(&mysql);



    Создать новую базу данных

    Пример

    /* Создать новую базу данных 'new_database' */
    result = mysql_create_db(&mysql, "new_database");



    в любой момент

    Пример

    saved_pos = mysql_row_tell(results);

    /* Теперь в любой момент я могу вернуться к этой записи */



    Пример result = mysql_select_db(&mysql, "newdb");

    Пример

    result = mysql_select_db(&mysql, "newdb");



    Пример result = mysql_shutdown(&mysql);

    Пример

    result = mysql_shutdown(&mysql);



    о сервере

    Пример

    printf("Информация о сервере \n-------\n%s\n", mysql_stat(&mysql));



    теперь содержит всю информацию из

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь содержит всю информацию из таблицы'people*/



    thread_ld = mysql_thread_id(&mysql);

    Пример

    thread_ld = mysql_thread_id(&mysql);



    теперь позволяет получить доступ

    Пример

    MYSQL_RES results;

    mysql_query(&mysql, "SELECT* FROM people");

    results = mysql_store_result(&mysql);

    /* 'results' теперь позволяет получить доступ к данным таблицы (используя mysql_fetch_row), по одной записи за раз*/



    к серверу баз данных на

    Пример

    /* Создать подключение к серверу баз данных на локальном хосте*/
    dbh = msqlConnect( (char*)NULL );
    if (dbh == -1) {

    print " Ошибка при подключении!\n";

    exit(1); }



    Ошибка при выборе базы данных!

    Пример

    /* Выбрать базу данных "mydatabase" */
    result = msqlSelectDB( dbh, "mydatabase" );
    if (result == -1) {

    print " Ошибка при выборе базы данных! \n";

    exit(1); }



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );



    к последней записи

    Пример

    /* Перейти к последней записи в результате */
    mysql_data_seek(results, mysql_num_rows(results)-1);



    К данным из этого запроса

    Пример

    m_result *results;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    IK. 897

    /* К данным из этого запроса можно обращаться через'results'. Теперь можно выполнять новые запросы */



    SELECT FROM people"

    Пример

    m_result "results;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();

    /* Выполнить работу */
    msqIFreeResult(results);



    Третье поле первой записи

    Пример

    m_result *results;

    m_row "row;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    printf(" Третье поле первой записи в таблице: %s\n", row[2]);



    SELECT FROM people"

    Пример

    m_result *results;

    m_row Vow;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );

    results = msqlStoreResult();

    row = msqlFetchRow(results);

    /* Вернуться к исходной позиции */ msqlDataSeek(results, 0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult(); rows = msqlNumRows(results);



    в том же наборе записей

    Пример

    m_field *field;

    rows_returned = msqlQuery( dbh, "SELECT FROM people" );

    results = msqlStoreResult();

    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о первом поле

    в результирующем наборе */
    field = msqlFetchField(results);

    /* 'field' теперь содержит информацию о втором поле в том же наборе записей */



    SELECT FROM people"

    Пример

    m_result "results; m_field 'field;

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    field = msqlFetchField(results);

    /* Вернутся к исходной позиции */
    msqlFieldSeek(results, .0);



    SELECT FROM people"

    Пример

    rows_returned = msqlQuery( dbh, " SELECT FROM people" );
    results = msqlStoreResult();
    fields = msqlNumFields(results);



    Do work

    Пример

    dbh = msqlConnect( (char')NULL );

    /* Do work */
    msqlClose(dbh);



    содержит теперь имена всех баз

    Пример

    databases = msqlListDBs(dbh);

    /* 'databases' содержит теперь имена всех баз данных на сервере*/



    Это обычное использование отладочной библиотеки.

    Пример

    /* Это обычное использование отладочной библиотеки. Информация о деятельности

    клиентских программ записывается в файл "debug.out"*/
    mysql_debug("d:t:0, debug. out");



    содержит теперь имена всех таблиц

    Пример

    tables = msqlListTables(dbh);

    /* 'tables' содержит теперь имена всех таблиц текущей базы данных*/



    содержит теперь имена всех

    Пример

    fields = msqlListFields(dbh, "people");

    /* 'fields' содержит теперь имена всех полей

    в таблице'people' */



    содержит информацию об индексе

    Пример

    index = msqll_istIndex(dbh, "people", "idx1");
    /* Теперь'index' содержит информацию об индексе 'idx1' в таблице 'people' */

    Уничтожить базу данных

    Пример

    /* Уничтожить базу данных 'old_database' */
    result = mysql_drop_db(&mysql, "old_database");



    Теперь журналы сервера должны содержать

    Пример

    result = mysql_dump_debug_info(&mysql);

    /* Теперь журналы сервера должны содержать информацию о текущем

    подключении */



    Прочитать до конца набор записей

    Пример

    /* Прочитать до конца набор записей */
    while((row = mysql_fetch_row( results.))) {

    /'Обработка 7 }
    if(!mysql_eof(results))

    {

    printf("Ошибка. Конец результата не достигнут.\n");



    Типы данных

    Типы данных

    MYSQL

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

    MYSQL_FIELD

    Структура, которая содержит всю информацию, касающуюся отдельного поля таблицы. Из всех типов, созданных для MySQL, это единственная структура, к полям которой можно получить прямой доступ из клиентских программ. Поэтому необходимо знать строение этой структуры:

    char *name

    Имя поля.
    char *table

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

    char *def

    Значение по умолчанию этого поля, если таковое существует. Это значение всегда будет null до вызова mysql_list_f ields, после чего в переменной будет корректное значение для полей, у которых есть значение по умолчанию.

    еnum enum_field_types type

    Тип поля. Он является одним из типов данных MySQL SQL.
    unsigned int length

    Размер поля, основанный на типе поля.
    unsigned int max_length

    После вызова mysql_list_fields здесь находится длина максимального значения, содержащегося в текущем результирующем наборе.

    unsigned int flags

    Ноль или более флагов. В настоящее время определены следующие флаги:

    NOT_NULL_FLAG

    Если установлен, поле не может содержать значение
    NULL. PRI_KEY_FLAG

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

    UNIQUE_KEY_FLAG

    Если установлен, поле является частью уникального ключа.

    MULTIPLE_KEY_FLAG

    Если установлен, поле является частью ключа.

    BLOB_FLAG

    Если установлен, поле имеет тип BLOB или TEXT.

    UNSIGNED_FLAG

    Если установлен, поле имеет числовой тип и содержит беззнаковое значение.

    ZEROFILL_FLAG

    Если установлен, поле было создано с флагом ZEROFILL.

    BINARY_FLAG

    Если установлен, поле имеет тип CHAR или VARCHAR с флагом BINARY.

    ENUM_FLAG

    Если установлен, поле имеет тип ENUM.

    AUTO_INCREMENT_FLAG

    Если установлен, поле имеет атрибут AUTO_INCREMENT.

    TIMESTAMP_FLAG

    Если установлен, поле имеет тип TIMESTAMP.
    unsigned int decimals

    При использовании с числовым полем выдает длину дробной части.

    Для облегчения использования данных MYSQL_FIELD созданы следующие макросы:

    IS_PRI_KEY( flags)

    Возвращает true, если поле является первичным ключом.
    IS_NOT_NULL(flags)

    Возвращает true, если поле имеет ограничение NOT NULL.
    IS_ELOE(flags)

    Возвращает true, если поле имеет тип BLOB или TEXT.
    IS_NUM(type)

    Возвращает true, если тип поля является числовым.
    MYSQL_FIELD_OFFSET

    Числовой тип, указывающий на позицию "курсора" в строке (записи).

    MYSQL_RES

    Структура, содержащая результат команды SELECT (или SHOW). Доступ к данным из запросов следует осуществлять через элемент этой структуры MYSQL_ROW.

    MYSQL_ROW

    Одна запись из данных, возвращаемых запросом SELECT. Все результаты, полученные от MySQL, хранятся в этом типе (как массив символьных строк).

    my_ulonglong

    Числовой тип, используемый для кодов возврата MySQL. Значение может находиться в диапазоне от 0 до 1.8Е19, и —1 используется для указания на ошибку.



    Справочник и примеры языка PHP

    Атрибуты

    Атрибуты

    $db->{AutoCommit}

    $handle->{ChopBlanks}

    $handle->{CompatMode}

    $handle->{InactiveDestroy}

    $handle->{LongReadLen}

    $handle->{LongTruncOk}

    $handle->{PrintError}

    $handle->{RaiseError}

    $handle->{Warn}

    $statement_handle->{CursorName}

    $statement_handle->{insertid} (только MySQL)

    $statement_handle->{is_blob} (только MySQL)

    $statement_handle->{is_key} (только MySQL)

    $statement_handle->{is_not_null}

    $statement_handle->{is_num}

    $statement__handle->{is_pri_key} (только MySQL и mSQL 1.x)

    $statement_handle->{length}

    $statement_handle->{max_length} (только MySQL)

    $statement_handle->{NAME}

    $statement_handle->
    $statement_handle->{NUM_OF_FIELDS}

    $statement_handle->{NUM_OF_PARAMS}

    $statement_handle->{table}

    $statement_handle->{type}

    В DBI.pm API определено несколько атрибутов, которые можно читать и устанавливать в любой момент. Присвоение значения атрибуту может определенным образом изменить поведение текущего соединения. Присвоение любого отличного от нуля значения атрибуту устанавливает его. Присвоение значения 0 атрибуту сбрасывает его. Некоторые значения определены только для конкретных баз данных и непереносимы. Ниже следуют атрибуты, применимые как к описателям баз данных, так и к командам.

    $db->{AutoCommit}

    Этот атрибут оказывает влияние на поведение серверов баз данных, поддерживающих транзакции. Для mSQL и MySQL он всегда должен быть установлен (значение по умолчанию). Попытка изменить его прерывает выполнение программы.

    $handle->{ChopBlanks}

    При установке этого атрибута отсекаются все ведущие и замыкающие пробелы в данных, возвращаемых запросом (например, при вызове DBI: : fetch row ). Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию - "сброшен".

    $handle->{InactiveDestroy}

    Назначение этого атрибута - сохранить процесс при ветвлении (fork), чтобы дочерний процесс мог пользоваться родительским описателем. Его следует установить в родительском или дочернем процессе, но не в обоих. Значение по умолчанию - "сброшен".

    $handle-> {PrintError}

    При установке этого атрибута выводятся все предупредительные сообщения. При сброшенном атрибуте доступ к ошибкам осуществляется только через $DBI: :errstr. Все производные от данного описатели наследуют значение этого атрибута. Значение по умолчанию -"установлен".

    $handle->{RaiseError}

    При установке этого атрибута все ошибки возбуждают в программе исключительные ситуации, прерывая ее выполнение, если не определен обработчик '__DIE__'. Все описатели, производные от этого, наследуют значение этого атрибута. Значение по умолчанию -"сброшен".

    $handle->{Warn}

    При установке этого атрибута выводятся предупредительные сообщения о неудачных приемах программирования (особенно пережитках Perl 4). Сброс этого атрибута отключает предупреждения DBI, что допустимо только при полной уверенности в своем мастерстве. Все производные от данного описатели (например, описатель команды, происходящий от описателя базы данных) наследуют значение этого атрибута. Значение по умолчанию — "установлен".

    $statement_handle->{insertid}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает из таблицы текущее значение поля auto_increment (если таковое имеется). Если поле auto_increment не существует, атрибут возвращает undef.

    $statement_handle->{is_blob}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно тип BLOB. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_blob} возвращает undef.

    $statement_handle->{is_key}

    Непереносимый атрибут, определенный только для DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как KEY. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{is_key} возвращает undef.

    $statement_handle->{is_not_null}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, определено ли оно как 'NOT NULL' . Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef. Того же результата можно достичь в переносимом виде, используя $statement_handle->{NULLABLE} .

    $statement_handle->{is_num}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, имеет ли оно числовой тип. Для описателя команды, созданного не выражением SELECT, $statement_handle->{is_num} возвращает undef.

    $statement_handle->{is_pri_key}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. При использовании с DBD::mSQL он оказывает влияние только для серверов mSQLl.x, поскольку mSQL2.x не использует первичные ключи. Атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, является ли оно первичным ключом.

    Для описателя команды, созданного не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{length}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Этот атрибут возвращает ссылку на список максимально допустимых размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{length} возвращает undef.

    $statement_handle->{max_length}

    Это непереносимый атрибут, определенный только для DBD::mysql. Атрибут возвращает ссылку на список фактических максимальных размеров полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, данный атрибут возвращает undef.

    $statement_handle->{NAME}

    Атрибут возвращает ссылку на список имен полей, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NAME} возвращает undef.

    $statement_handle->{NULLABLE}

    Этот атрибут возвращает ссылку на массив булевых значений, указывающих для каждого из содержащихся в описателе команды полей, может ли оно иметь значение NULL. Поле, определенное как 'NOT NULL', даст в списке значение 0. Остальные поля дадут значение 1. Для описателя команды, созданного не выражением SELECT, атрибут возвращает undef.

    $statement_handle->{NUM_OF_FIELDS}

    Атрибут возвращает число колонок данных, содержащихся в описателе команды. Для описателя команды, который был создан не выражением SELECT, $statement_handle->{NUM_OF_FIELDS} возвращает 0.

    $statement_handle->{NUM_OF_PARAMS}

    Этот атрибут возвращает число меток-заместителей в описателе команды. Метки-заместители обозначаются в команде символом '?'. Для подстановки вместо меток-заместителей надлежащих значений используется функция DBI: : bind_values .

    $statement_handle->{table}

    Это непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Атрибут возвращает ссылку на список имен таблиц, к которым осуществлялся доступ в запросе. Полезно использовать для SELECT с соединением нескольких таблиц.

    $statement_handle->{type}

    Непереносимый атрибут, определенный только для DBD::mSQL и DBD::mysql. Он возвращает ссылку на список типов полей, содержащихся в описателе команды. Для описателя команды, созданного не выражением SELECT, $statement_handle->{max_length} возвращает undef. Значениями списка являются целые числа, соответствующие перечислению в заголовочном файле С mysql_com.h из дистрибутива MySQL. Сейчас способа доступа к именам этих типов из DBI не существует. Но доступ к типам возможен через функцию &Mysql: : FIELD_TYPE_ * в Mysql.pm. В DBD::mysql имеется также недокументированный атрибут $statement_handle->{format_type_name} , идентичный $statement_handle- >{type} , за исключением того, что вместо целых чисел возвращает SQL-названия типов. Следует подчеркнуть, что это недокументированный атрибут, и автор DBD::niysql высказал свое намерение убрать его, как только в DBI будет реализована такая же функция.

    $statement_handle->{CursorName}
    $handle->{l_ongReadLen}
    $handle->{l_ongTruncOk}
    $handle->{CompatMode}

    Все эти атрибуты не поддерживаются в DBD::mSQL и DBD::mysql. Присвоение им значений ничего не даст, а чтение возвратит 0 или undef. Исключение составляет атрибут $statement_handle->{CursorName} . В настоящее время любое обращение к нему "убьет" программу.



    DBI available_drivers

    DBI::available_drivers

    @available_drivers = DBI->available_drivers;
    @available_drivers = DBI->available_drivers($quiet);

    DBI: :available_drivers возвращает список имеющихся драйверов DBD. Функция выполняет это, осуществляя поиск модулей DBD в дистрибуции Perl. Если в аргументе не передано значение true, то при обнаружении двух одноименных модулей DBD выводится предупреждение. В текущем дистрибутиве Msql-Mysql драйвер для mSQL называется 'mSQL', а драйвер для MySQL - 'mysqP.



    DBI bind_col

    DBI::bind_col

    $result = $statement_handle->bind_col($col_num, \$col_variable, \%unused);

    DBI: :bind_col связывает колонку команды SELECT с переменной Perl. При всяком чтении или изменении колонки изменяется значение соответствующей переменной. Первым аргументом является номер колонки в команде, при этом колонки нумеруются с 1. Второй аргумент — ссылка на переменную Perl, которая должна быть привязана к колонке. Необязательный третий аргумент ссылается на хэш атрибутов. В DBD: :mysql и DBD: :mSQL он не используется. При невозможности в силу каких-то причин сделать привязку функция возвращает неопределенное значение undef.



    DBI bind_param

    DBI::bind_param

    $result = $statement_handle->bind_param($param_number, $bind_value);
    $result = $statement_handle->bind_param($param_number, $bind_value, $bind_type);
    $result = $statenent_handle->bind_param($param_number, $bind_value, \%bind_type);

    DBI: : bind_param подставляет в команды действительные значения вместо меток-заполнителей '?' (см. OBI:: prepare). Первый аргумент - номер метки-заполнителя в команде, нумерация начинается с 1 (слева направо). Второй аргумент - подставляемое значение. Необязательный третий аргумент задает тип подставляемого значения. Это может быть скаляр или ссылка на хэш вида { TYPE => &DBI:: SQL_TYPE } , где 'SQL_TYPE' - тип параметра. На момент написания этой книги DBI поддерживал SQL-типы (недокументированные) SQL_CHAR, SQL_NUMERIC, SQL_DECIMAL, SQL_INTEGER, SQL_SMALLINT, SQL_FLOAT, SQL_REAL, SQL_DOUBLE и SQL_VARCHAR. Соответствие их фактическим типам, используемым DBD::mSQL и DBD::Mysql, не документировано. Тем не менее в таблице 21-1 приведен список соответствия на данный момент. Если подстановка невозможна, функция возвращает undef.



    DBI bmd_columns

    DBI::bmd_columns

    $result = $statement_handle->bincl_columns(\%unused, @list_of_refs_to_vars);

    DBI: : bind_columns привязывает весь список скалярных ссылок к значениям соответствующих полей в выдаче. Первый аргумент функции -ссылка на хэш атрибутов, как в DBI: :bind_col . DBD::mSQL и DBD::mysql не используют этот аргумент. Последующие аргументы должны быть ссылками на скаляры. Скаляры можно с таким же успехом группировать в структуру \($var1, $var2) . Ссылок на скаляры должно быть ровно столько, сколько полей в выходных результатах, иначе выполнение программы будет прекращено.



    DBI commit DBI rollback DBI ping

    DBI::commit, DBI::rollback, DBI::ping

    $result = $db->commit;
    $result = $db->rollback;
    Sresult = $db->ping;

    DBI: :commit и DBI: : rollback полезны только при работе с серверами, поддерживающими транзакции. При работе с DBD::mSQL и DBD::mysql они не оказывают никакого эффекта. DBD: :ping пытается проверить, запущен ли сервер базы данных. В DBD::mSQL и DBD::mysql она не реализована.



    DBI connect

    DBI::connect

    $db = DBI->connect($data_source, $username, $password);

    $db = DBI->connect($data_source, $username, $password, \%attributes);

    DBI:: connect требует по крайней мере три аргумента и необязательный четвертый. Через возвращаемый описатель выполняются все операции с сервером базы данных. Первый аргумент является источником данных. Список имеющихся источников можно получить с помощью DBI: :data_sources . Для mSQL и MySQL формат источника данных 'DBI:mSQL:$database:Shostname:Sport' и 'DBI:mysql:Sdatabase:Shostname:Sport' соответственно. Можно опустить :Sport при соединении через стандартный порт. Аналогично можно опустить ': Shostname: Sport' при соединении с сервером на локальном узле с помощью сонета Unix. Имя базы данных указывать обязательно.

    Второй и третий аргументы — имя пользователя и пароль для подключения к базе данных. Для mSQL оба аргумента должны иметь значение 'undef'. Если они заданы как 'jndef при работе с MySQL, то у пользователя, запустившего программу, должны быть права доступа к требуемым базам данных.

    Последний аргумент необязателен и является ссылкой на ассоциативный массив. Данный хэш позволяет определить некоторые атрибуты соединения. В настоящее время поддерживаются только атрибуты PrintError, RaiseError и AutoCommit. Для сброса им нужно придать значение 0, для установки - какое-либо истинное значение. По умол-чаник) PrintError и AutoCommit включены, a RaiseError - сброшен. Поскольку в данное время ни mSQL, ни MySQL не поддерживают транзакции, атрибут AutoCommit должен быть установлен (более подробно см. Атрибуты).

    При неудаче соединения возвращается неопределенное значение undef, и в $DBI;:errstr помещается ошибка.



    DBI data_sources

    DBI::data_sources

    @data_sources = DBI->data_sources($dbd_driver);

    DBI: :data_sources принимает в качестве аргумента имя модуля DBD и возвращает все имеющиеся для этого драйверы базы данных в форма- " те, пригодном к использованию в качестве источника данных функцией DBI::connect . Программа заканчивает свое выполнение с ошибкой, если задано неверное имя драйвера DBD. В текущих версиях модулей Msql-Mysql драйвер для mSQL называется 'mSQL', а для MySQL -'mysql'.



    DBI do

    DBI::do

    $rows_affected = $db->do($statement);
    $rows_affected = $db->do($statement, \%unused);
    $rows_affected = $db->do($statement, \%unused, @bind_values);

    DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.



    DBI dump_results

    DBI::dump_results

    $neat_rows = DBI::dump_results($statement_handle);
    $neat_rows = DBI::dump_results($statement_handle, Smaxlen);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep);
    $neat_rows = DBI::dump_results($statement_handle, $maxlen, $line_sep,$field_sep, $file_handle);

    DBI: :dump_results выводит содержание описателя команды в удобном и упорядоченном виде, применяя к каждой строке DBI: :neat_string . Функцию удобно использовать для быстрой проверки результатов запроса во время разработки программы. Единственный обязательный аргумент - описатель команды. Второй аргумент, если имеется, задает максимальный размер полей в таблице, по умолчанию равный 35. Третий аргумент задает строку, используемую для разграничения строк данных, по умолчанию- \n. Четвертый аргумент задает строку, используемую для разделения значений полей в строке, по умолчанию используется запятая. Последний аргумент задает ссылку на глобальный описатель файла, в который выводятся результаты. По умолчанию это STDOUT. Если невозможно прочесть описатель команды, возвращается значение undef.



    $DBI err

    $DBI::err

    $error_code = $handle->err;

    $DBI::err возвращает код последней по времени ошибки DBI. Код ошибки соответствует сообщению об ошибке, возвращаемому функцией $DBI: :errstr. Переменная $DBI: :err выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    $DBI errstr

    $DBI::errstr

    $error = $handle->errstr;

    Эта функция возвращает сообщение о последней происшедшей ошибке DBI. Значение сохраняется до возникновения новой ошибки, когда оно будет заменено. Если во время данного сеанса ошибок не было, функция возвращает undef. Переменная $DBI: :errstr выполняет ту же задачу. Эта функция применима с описателями как баз данных, так и команд.



    DBI execute

    DBI::execute

    $rows_affected = $statement_handle->execute;
    $rows_affected = $statement_handle->execute(@bind_values);

    DBI: : execute выполняет SQL-команду, содержащуюся в описателе команды. Для запроса, не являющегося SELECT, функция возвращает число измененных строк. Функция возвращает -1, если число строк неизвестно. Для запроса типа SELECT при успехе возвращается истинное значение. Если заданы аргументы, они используются для подстановки имеющихся в команде меток-заместителей (см. DBI: : prepare ).



    DBI fetchall_arrayref

    DBI::fetchall_arrayref

    $ref_of_array_of_arrays = $statement_handle->fetchall_arrayref;

    DBI: :fetchall_arrayref возвращает все оставшиеся данные в описателе команды в виде ссылки на массив. Каждая строка массива - ссылка на другой массив, в котором содержатся данные этой строки. Если в описателе команды нет данных, функция возвращает неопределенное значение undef. Если с этим описателем команды уже выполнялись функции DBI: :fetchrow_ *, то DBI: :fetchall_arrayref возвращает все данные, оставшиеся после последнего обращения к DBI: : fetch row *.



    DBI fetchrow_array

    DBI::fetchrow_array

    @row_of_data = $statement_handle->fetchrow;

    DBI: : fetch row возвращает очередную строку данных из описателя команды, созданного DBI: :execute . Каждое последующее обращение к DBI: : fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Порядок элементов в результирующем массиве определяется исходным запросом. Если запрос имел вид SELECT * FROM . . . , то элементы следуют в том порядке, в котором они были определены в таблице.



    DBI fetchrow_arrayref DBI fetch

    DBI::fetchrow_arrayref, DBI::fetch

    $аrrау_rеГегепсе = $statement_handle->fetchrow_arrayref;
    $array_reference = $statement_handle->fetch;

    DBI: : fetchrow_arrayref и ее псевдоним DBI: :fetch работают точно так же, как DBI: :fetchrow_array , но возвращают не фактический массив, а ссылку на него.



    DBI fetchrow_hashref

    DBI::fetchrow_hashref

    $hash_reference = $statement_handle->fetchrow_hashref;

    DBI: :fetchrow_hashref работает так же, как OBI: :fetchrow_arrayref , но возвращает ссылку на ассоциативный, а не на обычный массив. Ключами хэша являются имена полей, а значениями - значения в этой строке данных.



    DBI finish

    DBI::finish

    $result = $statement_handle->finish;

    DBI:: finish освобождает все данные в описателе команды, чтобы можно было уничтожить описатель или снова подготовить его. Некоторым серверам баз данных это необходимо для освобождения соответствующих ресурсов. DBD::mSQL и DBD::mysql не нуждаются в этой функции, но для переносимости кода следует использовать ее по окончании работы с описателем команды. Функция возвращает неопределенное значение undef, если описатель не удается освободить.



    DBI func

    DBI::func

    $handlc->func(@func_argumcnts, $func_name);
    @dbs = $db->func("$hostname", '_ListDBs');
    @dbs = $db->func("$hostname:Sport", '_ListDBs');
    @tables = $db->func('_ListTables');
    $result = $drh->func( $database, '_CreateDB' );
    Sresult = $drh->func( Sdatabase, '_DropDB' );

    DBI::func вызывает специализированные непереносимые функции, включенные в различные драйверы DBD. Она используется с описателем базы данных или описателем команды, в зависимости от назначения специализированной функции. По возможности следует использовать равносильную переносимую функцию. При использовании специализированной функции сначала передаются ее аргументы как скаляр, а затем - имя функции. DBD::mSQL и DBD::mysql реализуют следующие функции:

    _ListDBs

    Функция _ListDBs принимает имя узла и необязательный номер порта и возвращает список имеющихся у сервера баз данных. Лучше использовать переносимую функцию DBJ::data_sources .

    _ListTables

    Функция _ListTables возвращает список таблиц, имеющихся в текущей базе данных.

    _CreateDB

    Функция _CreateDB принимает в качестве аргумента имя базы данных и пытается создать эту базу данных на сервере. Для работы с этой функцией необходимо иметь право создания баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.

    _DropDB

    Функция _DropDB принимает в качестве аргумента имя базы данных и пытается удалить с сервера эту базу данных. Данная функция не выводит пользователю сообщений и при успешном выполнении удаляет базу данных навсегда. Для работы с этой функцией необходимо иметь право удаления баз данных. Функция возвращает -1 в случае неудачи и 0 в случае успеха.



    DBI neat_list

    DBI::neat_list

    $neat_string = DBI::neat_list(\@listref, $maxlen);

    $neat_string = DBI::neat_list(\@listref, $maxlen, $field_seperator);

    DBI: :neat_list принимает три аргумента и возвращает аккуратно отформатированную строку, пригодную для вывода. Первый аргумент содержит ссылку на список выводимых значений. Второй аргумент -максимальная длина каждого поля. Последний аргумент - строка, используемая для разделения полей. Для каждого элемента списка вызывается OBI: :neat с использованием заданной максимальной длины. В результирующих строках для разделения полей используется последний аргумент. Если последний аргумент не задан, в качестве разделителя применяется запятая.



    DBI neat

    DBI::neat

    $neat_string = DBI: :neat($s'tring);
    $neat_string = DBI::neat($string, $maxlen);

    DBI: : neat Принимает в качестве аргументов строку и необязательную длину. Затем строка форматируется для аккуратного вывода. Вся строка заключается в одиночные кавычки. Непечатаемые символы заменяются точками. Если задан аргумент длины, все символы после максимальной длины удаляются, а строка заканчивается тремя точками (...). Если длина не указана, по умолчанию используется значение 400.



    DBI pmAPI

    DBI.pmAPI

    DBI API является стандартным API баз данных в Perl. Поэтому, хотя MsqPerl и MysqlPerl могут быть более распространены в унаследованных программах, новые программы следует писать с использованием DBI.



    DBI prepare

    DBI::prepare

    $statement_handle = $db->prepare($statement);
    $statement_handle = $db->prepare($statement, \%unused);

    DBI: :prepare принимает в качестве аргумента SQL-команду, которую некоторые модули баз данных переводят во внутреннюю компилированную форму, исполняемую быстрее при вызове DBI: : execute . Эти модули DBD (не DBD::mSQL или DBD::mysql) принимают также ссылку на хэш необязательных атрибутов. Серверы mSQL и MySQL в настоящее время не реализуют концепцию подготовки команд, поэтому DBI: : prepare просто запоминает команду. По желанию вместо значений данных в команду можно вставить любое количество символов '?'. Эти символы известны как метки-заместители (placeholders). Функция DBI: : bind_param осуществляет подстановку действительных значений вместо меток-заместителей. Если по какой-либо причине команду нельзя подготовить, функция возвращает undef.



    DBI quote

    DBI::quote

    $quoted_string = $db->quote($string);

    DBI::quote принимает строку для использования в качестве запроса SQL и возвращает ее копию с правильно расставленными для ввода в запрос кавычками, в том числе расставляя корректные кавычки по концам строки.



    DBI rows

    DBI::rows

    $number_of_rows = $statement_handle->rows;

    Del: : rows возвращает число строк данных, содержащихся в описателе команды. Для DBD::mSQL и DBD::mysql эта функция дает точное число для всех команд, включая SELECT. Для многих других драйверов, которые не хранят в памяти сразу все результаты, эта функция надежно работает только для команд, не являющихся SELECT. Это следует учитывать при написании переносимых программ. Функция возвращает —1, если по какой-либо причине число строк неизвестно. Переменная $DBI: : rows выполняет ту же задачу.



    DBI state

    DBI::state

    $sql_error = $handle->state;

    DBI: : state возвращает код ошибки SQL SQLSTATE последней по времени ошибки DBI. В данное время DBD::mSQL и DBD^mysql сообщают 'S1000' для всех ошибок. Эта функция доступна для описателей баз данных и команд. Переменная $ОВ1: : state выполняет ту же задачу.



    DBI trace

    DBI::trace

    DBI->trace($trace_level)
    DBI->trace($trace_level, $trace_file)
    $handle->trace($trace_level);
    $handle->trace($trace_level, $trace_file);

    DBI:: trace используется в основном для отладки. Если уровень трассировки установлен равным 2, выводится полная отладочная информация. Установка уровня 0 отключает трассировку. DBI->trace осуществляет трассировку для всех описателей, a $handle->trace - только для данного описателя — базы данных или команды. При наличии в DBI- >t race или $handle->trace второго аргумента отладочная информация выводится в указанный файл. Также трассировку можно включить, установив значение переменной окружения DBI_TRACE. Если переменная окружения установлена равной числу (в настоящее время 0 или 2), включается трассировка всех описателей на этом уровне. При другом значении переменной уровень трассировки устанавливается равным 2, а само значение используется в качестве имени файла для вывода отладочной информации.



    DBI

    DBI



    DBIdisconnect

    DBI-disconnect

    $result = $db->disconnect;

    DBI: : disconnect отсоединяет описатель базы данных от сервера баз данных. Для mSQL и MySQL в этом обычно нет необходимости, поскольку эти базы данных не поддерживают транзакций, и неожиданное отсоединение не причинит вреда. Однако от баз данных, поддерживающих транзакции, нужно отсоединяться явным образом. Поэтому, чтобы получить переносимую программу, нужно всегда отсоединяться от базы данных перед выходом. При ошибке во время отсоединения возвращается ненулевое значение, и в $DBI: :errstr устанавливается ошибка.



    Msql connect

    Msql::connect

    $db = Msql->connect;

    $db = Msql->connect($host);

    $db = Msql->connect($host, Sdatabase);

    Устанавливает соединение между вашей программой на Perl и сервером Msql. У этой функции три версии. При отсутствии аргументов соединение устанавливается с сонетом Unix Msql на локальном узле без указания базы данных. Это наиболее эффективное соединение. Если задан один скалярный аргумент, он рассматривается как имя узла или IP-адрес сервера mSQL. Производится соединение с этим сервером без указания базы данных. Если присутствуют два скалярных аргумента, то первый рассматривается как имя узла сервера mSQL, а второй - как имя требуемой базы данных. Программа устанавливает соединение с указанным сервером и выбирает указанную базу данных. Возвращаемое значение является ссылкой на объект, называемый описателем базы данных (database handle). Вся связь с самим сервером базы данных происходит через этот объект. В случае невозможности установить соединение, все версии функции возвращают undef, и в $Msql: :db_errstr помещается сообщение об ошибке.



    Msql createdb

    Msql::createdb

    $result = $db->createdb($database);

    Msql: : createdb создает базу данных, имя которой принимает в качестве аргумента. Запрос на создание посылается серверу mSQL. Команда посылается от имени пользователя, запустившего CGT-программу. Поэтому для успешного использования в программе CGI последняя должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql database

    Msql::database

    $database = $db->database;

    Msql: database возвращает имя текущей базы данных как скаляр. Функция возвращает undef, если нет выбранной базы данных.



    Msql dropdb

    Msql::dropdb

    $result = $db->dropdb($database);

    Msql: :dropdb принимает в качестве аргумента имя базы данных, которую нужно удалить. Затем она посылает запрос на удаление серверу mSQL. Команда посылается от имени пользователя, запустившего CGI-программу. Поэтому для успешного использования в программе CGI она должна быть запущена пользователем, имеющим право создания баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха. Она не просит подтверждения, и ее результат становится постоянным, поэтому ее следует использовать с крайней осторожностью.



    Msql errmsg

    Msql::errmsg

    $error = $db->errmsg:

    Msql::errmsg возвращает последнюю по времени ошибку сеанса работы с сервером mSQL. Значение сохраняется, пока не произойдет следующая ошибка, и тогда заменяется новым. Если во время сеанса не произошло ошибки, функция возвращает undef.



    Msql getsequenceinfo

    Msql::getsequenceinfo

    ($step, $value) = $db->getsequenceinfo($table);

    Msql: :getsequenceinfo принимает в качестве аргумента имя таблицы. Функция возвращает шаг и значение последовательности, если она определена в таблице. Если в указанной таблице не определена последовательность, то возвращается неопределенное значение undef, и в Msql: :errmsg помещается ошибка.



    Msql host

    Msql::host

    Shost = $db->host;

    Msql: :host возвращает имя узла сервера базы данных как скаляр. Не гарантируется возврат канонического или хотя бы полностью квалифицированного доменного имени. В действительности, хотя это и не документировано, Msql:: host возвращает ту самую строку, которая передавалась серверу при вызове Msql::connect . Это согласуется и с тем, что Msql:: host возвращает undef, если использовалась форма Msql: : connect без аргументов.



    Msql listdbs

    Msql::listdbs

    @databases = $db->listdbs;

    Msql: :listdbs возвращает список имеющихся на сервере баз данных. Если баз данных нет, она возвращает пустой массив.



    Msql listfields

    Msql::listfields

    $fields = $db->listfields($table);

    Msql:: listf ields принимает в качестве аргумента имя таблицы в текущей базе данных. Она возвращает ссылку на объект, который содержит имена всех полей и некоторые другие сведения. Эта ссылка известна как описатель команды (statement handle). Содержащиеся в нем данные можно извлечь с помощью функций Msql::Statement: :as_string, Msql::Statement: :listindices (только mSQL2.0), Msql: Statement: :numfields , Msql::Statement::table , Msql::Statement::name , Msql::Statement::type , Msql::Statement::isnotnull , Msql::Statement::isprikey , Hsql::Statement::isnum и Msql::Statement: .'length . Если таблицы не существует, функция возвращает неопределенное значение undef, и в Msql: :errmsg помещается ошибка. В описании Msql: :Statement: :fetchhash можно видеть прием, который делает данную функцию несколько устаревшей.



    Msql listindex

    Msql::listindex

    @index_handles = $db->listindex($table,$index);

    Msql: : listindex принимает в качестве аргументов имена таблицы и индекса и возвращает массив описателей команд, содержащих данные о каждом из индексов. Хотя, согласно документации, эта функция возвращает массив описателей команд, всегда возвращается не более одного описателя. Поэтому, вероятно, можно рассматривать эту функцию как возвращающую скалярный описатель команды. Это описатель в том же стиле, что и возвращаемый Msql::query , и может обрабатываться теми же функциями. Если индекс не существует, возвращается неопределенное значение undef. В возвращаемой таблице данных об индексе одна колонка с именем "Index". В первой строке указан тип индекса, который в mSQL2.0 всегда "avl". Остальные строки суть имена полей, составляющих индекс. Эта функция применима только к mSQL версий 2.0 и выше.



    Msql listtables

    Msql::listtables

    @tables = $db->listtables;

    Msql: :listtables возвращает массив таблиц, имеющихся в базе данных. Если в базе данных нет таблиц, функция вернет пустой массив.



    Msql pm API

    Msql.pm API



    Msql query

    Msql::query

    $query_output = $db->query($sql_statement);

    Msql::query является самой важной и наиболее часто используемой функцией в Msql.pm API. В действительности вы посылаете SQL-запросы серверу базы данных через эту функцию. Функция принимает в качестве аргумента скалярную строку, содержащую SQL-запрос. Если запрос является выражением SELECT, то она возвращает описатель команды, содержащий результаты выполнения запроса. В противном случае функция вернет число строк, измененных запросом. С описателем команды работают те же самые функции, которые были перечислены для Msql:: listf ields (за исключением Msql:: Statement:: listindices ), a также следующие: Msql::Statement: :fetchrow , Msql::Statement::fetched , Msql::Statement::fetchhash , Msql: Statement::numrows , Msql::Statement::maxlength и Msql: Statement: :dataseek . Если по какой-либо причине запрос был неудачным, возвращается значение undef и в Msql: :errmsg помещается ошибка. Каждый описатель команды содержит выходные данные отдельного запроса, поэтому можно послать системе много запросов и работать с каждым описателем команды, когда заблагорассудится.



    $Msql QUIET

    $Msql::QUIET

    Если переменная $Msql: : QUIET установлена в true, то параметр -w в Perl отключает вывод ошибок. В противном случае все ошибки MsqlPerl будут автоматически посылаться на STDERR. Переменную можно в любой момент сбросить. Функция вывода сообщений об ошибках по -w настолько полезна, что не рекомендуется устанавливать $Msql: : QUIET .



    Msql quote

    Msql::quote

    $quoted_string = $db->quote($string);
    $truncated_quoted_string = $db->quote($string,$length);

    Msql: :quote принимает в качестве аргумента скалярную строку. Она возвращает ту же строку, но с правильной расстановкой кавычек, пригодную для вставки в поле базы данных типа CHAR или TEXT. Более точно, строка заключается в одиночные кавычки, а одиночные кавычки внутри строки предваряются управляющим символом "обратная косая черта". Если задан второй аргумент, результирующая строка укорачивается до заданной длины.



    Msql selectdb

    Msql::selectdb

    $db->selectdb($database);

    Msql: :selectdb выбирает базу данных на сервере. В случае неуспеха в Msql: :errmsg помещается ошибка. Единственный действенный способ проверить успешность выполнения функции - посмотреть значение $db->database и сравнить его с той базой данных, с которой вы хотели соединиться. В любой момент выполнения программы можно переключиться между базами данных.



    Msql shutdown

    Msql::shutdown

    $result = $db->shutdown;

    Msql: : shutdown посылает на сервер mSQL команду остановки. Команда посылается от имени пользователя, запустившего программу, поэтому для использования в CGI-программе последняя должна запускаться пользователем, имеющим право остановки сервера баз данных. Функция возвращает -1 при неудаче и 0 в случае успеха.



    Msql sock

    Msql::sock

    $sock = $db->sock;

    Msql::sock возвращает скаляр, содержащий номер сокета, использованного для подключения к серверу mSQL. Обычно это полезно только при действительно изощренном программировании.



    Msql Statement as_string

    Msql::Statement::as_string

    $formatted_table = $statement_handle->as_string;

    Msq1: :Statement: :as_string возвращает данные, содержащиеся в описателе команды, в виде аккуратно отформатированной таблицы ASCII. Таблица аналогична тем, которые выводит монитор msql. Программа pmsql, поставляемая с модулем Msql.pm, использует эту функцию для создания своих таблиц.



    Msql Statement dataseek

    Msql::Statement::dataseek

    $statement_handle->dataseek($row_number);

    Msql: :Statement: :dataseek принимает в качестве аргумента номер строки. Функция переустанавливает данные, так что следующий вызов Msql: :Statement: :fetchrow или Msql: Statement: :fetchhash возвращает данные указанной строки. Если указанный номер строки выходит за границы таблицы, указатель устанавливается на конец таблицы и при следующем вызове будет возвращено неопределенное значение undef. Первая строка таблицы имеет номер 0.



    Msql Statement fetchcol

    Msql::Statement::fetchcol

    @column_of_data = $statement_handle->fetchcol($column_number);

    Msql: :Statement: :fetched принимает в качестве аргумента номер колонки и возвращает массив всех значений, находящихся в этой колонке. Каждый вызов возвращает значения в колонке в одинаковом порядке, поэтому значения с одинаковым номером элемента находятся в одной строке данных. Первая выдаваемая колонка имеет номер 0. Для выполнения этого вызова модуль должен считать всю таблицу, поэтому, если вы хотите продолжить просмотр таблицы после вызова этой функции, переустановите данные с помощью Msql::Statement: :dataseek . Если задан недопустимый номер колонки, возвращается неопределенное значение undef.



    Msql Statement fetchhash

    Msql::Statement::fetchhash

    %hash ='$statement_handle->fetchhash;

    Msql::Statement: :fetchhash возвращает текущую строку описателя команды как ассоциативный массив (или хэш). Ключами хэша служат имена полей, а значениями - значения данных текущей строки. Каждое последующее обращение к функции возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef.



    Msql Statement fetchrow

    Msql::Statement::fetchrow

    @row_of_data = $statement_handle->fetch row;

    Msql:: Statement: : fetch row возвращает очередную строку данных из описателя команды, созданного Msql:.-query. Каждое последующее обращение к Msql: Statement: :fetchrow возвращает очередную строку данных. Когда данных больше нет, функция возвращает неопределенное значение undef. Элементы в результирующем массиве упорядочены в соответствии с исходным запросом. Если запрос имел вид SELECT*FROM ... , то элементы упорядочиваются в соответствии с последовательностью определения полей в таблице.



    Msql Statement isnotnull

    Msql::Statement::isnotnull

    @not_null = $statement_handle->isnotnull;

    Msql:: Statement: :isnotnull возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, была ли она определена как 'NOT NULL'. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement isnum

    Msql::Statement::isnum

    @numbers = $statement_handle->isnum;

    Msql: : Statement: : isnum возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она числовой. При вызове в скалярном контексте функция возвращает ссылку на массив. "Числовая" означает тип, например, 'INT' или 'REAL', но не число в поле типа 'CHAR' или 'TEXT'.



    Msql Statement isprikey

    Msql::Statement::isprikey

    @primary_key = $statement_handle->isprikey;

    Msq1::Statement: :isprikey возвращает список булевых значений, указывающих для каждой из содержащихся в описателе команды колонки, является ли она первичным ключом. При вызове в скалярном контексте функция возвращает ссылку на массив. Эта функция всегда возвращает список, состоящий из нулей, при соединении с сервером mSQL 2, поскольку в mSQL 2 не используются первичные ключи. Однако она может быть полезна с серверами mSQL 1, поскольку в них реализованы первичные ключи.



    Msql Statement length

    Msql::Statement::length

    @lengths = $statement_handle->length;

    Msql::Statement::length возвращает список максимально возможных длин для колонок, содержащихся в описателе команды. Это значения, определенные как максимальные при создании таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив.



    Msql Statement listindices

    Msql::Statement::listindices

    Pindices = $statement_handle->listindices;

    Msql: : Statement: :listindices возвращает индексы, связанные с какими-либо полями в описателе команды. Поскольку функция непосредственно ищет имена полей, она полезна только для имен, возвращаемых Msql: : listf ields . Если индексы не обнаружены, возвращается неопределенное значение undef. Эту функцию можно использовать только с серверами mSQL 2.0 или последующих версий.



    Msql Statement maxlength

    Msql::Statement::maxlength

    @max_lengths = $statement_handle->maxlength; '

    Msql::Statement: :maxlength возвращает список фактических максимальных размеров всех полей таблицы. При вызове в скалярном контексте функция возвращает ссылку на массив. Поскольку сервер mSQL прямо не сообщает эти данные, она реализована путем чтения всей таблицы и поиска максимального значения для каждого поля. Поэтому в mSQL эта функция может потребовать много ресурсов, если запрос возвращает большой объем данных.



    Msql Statement name

    Msql::Statement::name

    @column_names = $statement_handle->name;

    Msql:: Statement:: name возвращает имена колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Как и для Msql::Statement::table , скалярное значение этого списка (в противоположность значению функции при вызове в скалярном контексте) совпадает со значением Msql::Statement::numfields



    Msql Statement numfields

    Msql::Statement::numfields

    $number_of_fields = $statement_handle->numfields;

    Msql:: Statement: : numf ields возвращает число полей в каждой строке результирующих данных, содержащихся в описателе команды. Во всех выходных данных есть хотя бы одно поле, поэтому данная функция возвращает положительное число для всех определенных описателей команд.



    Msql Statement numrows

    Msql::Statement::numrows

    $number_of_rows = $statement_handle->numrows;

    Msql: : Statement: : numrows возвращает число строк, содержащихся в описателе команды. Для описателя, который не может содержать строк, например, возвращаемого Msql: :listfields , функция возвращает строку 'N/A.' Если описатель может содержать строки, но их нет - например, он возвращен SELECT, для которого не найдено соответствия, -функция возвращает 0.



    Msql Statement table

    Msql::Statement::table

    @tables = $statement_handle->table;

    Msql: :Statement: :table возвращает список таблиц, связанных с колонками данных, содержащимися в описателе команды. (См. выше в Msql: : Statement: : isnum пример использования ссылки на массив.) Даже если запрос использовал только одну таблицу, для каждой колонки есть один элемент. Побочным эффектом является то, что скалярное значение массива, возвращаемого $statement_handle->table , совпадает со значением $statement_handle->numfields .



    Msql Statement type

    Msql::Statement::type

    @column_types = $statement_handle->type;

    Msql: : Statement: : type возвращает типы колонок данных, содержащихся в описателе команды. При вызове в скалярном контексте функция возвращает ссылку на массив. Сам по себе этот массив не очень интересен для большинства пользователей (в текущей реализации это массив целых чисел), однако эти значения можно сравнивать со встроенными значениями, определенными в Msql.pm, такими как &Msql: : CHAR_TYPE и &Msql: : INT_TYPE. Один из путей использования этих данных - создание массива с читаемыми названиями, соответствующими предустановленным типам. Этот метод был продемонстрирован в главе 10 "Perl". Другой способ показан ниже.



    Msql *_TYPE

    Msql::*_TYPE

    Msql.pm предоставляет следующие функции, соответствующие типам данных mSQL:

    &Msql::CHAR_TYPE &Msql::INT_TYPE &Msql::REAL_TYPE &Msql::IDENT_TYPE
    &Msql::TEXT_TYPE &Msql::IDX_TYPE &Msql::NULL_TYPE &Msql::DATE_TYPE
    &Msql::UINT_TYPE &Msql::MONEY_TYPE &Msql::TIME_TYPE &Msql::SYSVAR_TYPE



    $Msql VERSION

    $Msql::VERSION

    В переменной $Msql:: VERSION содержится номер версии модуля Msql.pm.



    MSQL

    MSQL



    Mysql connect

    Mysql::connect

    $db = Mysql->connect($host, Sdatabase, $user, $password);

    Помимо трех методов соединения, совпадающих с Msql: :connect , в Mysql:: connect есть четвертый метод, требующий передачи пароля в качестве дополнительного аргумента. Первый аргумент - имя узла или IP-адрес сервера MySQL. Если в качестве этого аргумента передается undef, модуль соединяется с сонетом Unix на локальном узле. Второй аргумент является именем первоначально выбираемой базы данных. Его всегда можно впоследствии изменить с помощью Mysql: :selectdb . Можно передать undef в качестве второго аргумента, чтобы не выбирать исходной базы данных. Третий аргумент является именем пользователя для соединения с базой данных. Для успешного соединения имя пользователя должно присутствовать в таблицах доступа MySQL. Последний аргумент является паролем пользователя.



    Mysql errno

    Mysql::errno

    $error_number = $db->errno;

    Mysql: :errno возвращает код последней ошибки. Код соответствует сообщению об ошибке, возвращаемому Msql: : errmsg .



    Mysql FIELD_TYPE_*

    Mysql::FIELD_TYPE_*

    Помимо функций типов данных Mysql: :TYPE_ *, идентичных функциям Msql::TYPE *, Mysql.pm предоставляет следующие дополнительные функции типов данных:

    &Mysql::FIELD_TYPE_BLOB &Mysql::FIELD_TYPE_CHAR &Mysql::FIELD_TYPE_DECIMAL &Mysql::FIELD_TYPE_DATE &Mysql::FIELD_TYPE_DATETIME &Mysql::FIELD_TYPEJ)OUBLE &Mysql::FIELD_TYPE_FLOAT &Mysql: : FIELD_TYPE_INT24 &Mysql::FIELD_TYPE_LONGLONG &Mysql::FIELD_TYPE_LONG_BLOB &Mysql::FIELD_TYPE_LONG &Mysql::FIELD_TYPE_MEDIUM_BLOB &Mysql::FIELD_TYPE_NULL &Mysql::FIELD_TYPE_SHORT &Mysql::FIELD_TYPE_STRING &Mysql::FIELD_TYPE_TIME &Mysql::FIELD_TYPE_TIMESTAMP &Mysql::FIELD_TYPE_TINY_BLOB &Mysql::FIELD_TYPE_VAR_STRING



    Mysql pm API

    Mysql.pm API

    Mysql.pm API идентичен Msql API (с заменой всюду "Msql" на "Mysql"), за исключением следующих отличий:



    Mysql query

    Mysql::query

    В отличие от MsqLpm, Mysql.pm возвращает описатель команды даже для запросов, не являющихся командами SELECT, например, для запросов INSERT, UPDATE и DELETE.



    Mysql Statement affectedrows

    Mysql::Statement::affectedrows

    $number_of_affected_rows = $statement^handle->affectedrows;

    Msql: :Statement: :affectedrows возвращает число строк, обработанных запросом. Эта функция полезна, поскольку Mysql.pm возвращает описатель команды для запросов, не являющихся командами SELECT.



    Mysql Statement info

    Mysql::Statement::info

    $info = $sth->info;

    Mysql: : Statement:: info возвращает дополнительные результаты некоторых запросов, для которых в Mysql.pm нет специальных функций, таких как ALTER TABLE и LOAD DATA INFILE . Например, при использовании LOAD DATA INFILE функция Mysql: : Statement:: info возвращает число вставленных записей, число удаленных, число пропущенных и число элементов, которые невозможно синтаксически разобрать.



    Mysql Statement insertid

    Mysql::Statement::insertid

    $new_id = $statement_handle->insertid;

    Функция Mysql::Statement::insertid возвращает текущее значение поля auto_increment (если такое имеется) в таблице. Если в таблице нет поля auto_increment , она возвращает неопределенное значение undef.



    Mysql Statement isblob

    Mysql::Statement::isblob

    @blobs = $statement_handle->isblob;

    Mysql: : Statement:: isblob возвращает список булевых значений, указывающих на то, имеют ли содержащиеся в описателе команды поля тип BLOB. При вызове в скалярном контексте функция возвращает ccылку на массив.



    MySQL

    MySQL

    SQL_CHAR

    CHAR TYPE

    FIELD TYPE CHAR



    IDENT TYPE

    FIELD TYPE DATE



    NULL TYPE

    FIELD TYPE DATETIME



    DATE TYPE

    FIELD TYPE NULL



    MONEY TYPE

    FIELD TYPE TIMESTAMP



    TIME TYPE

    FIELD TYPE TIME



    IDX TYPE





    SYSVAR TYPE





    ANY TYPE



    SQL_NUMERIC



    FIELD TYPE LONG FIELD TYPE LONGLONG FIELD_TYPE_SHORT

    SQL_DECIMAL



    FIELD_TYPE_DECIMAL

    SQLJNTEGER

    INT_TYPE

    FIELD_TYPE_INT24

    SQL SMAL-LINT

    UINT_TYPE

    FIELD_TYPE_INT24

    SQL_FLOAT



    FIELD_TYPE_FLOAT

    SQL_REAL

    REAL TYPE LAST_REAL_TYPE

    FIELD JTYPE_DOUBLE

    SQLJDOUBLE



    FIELD_TYPE_DOUBLE

    SQL_VARCHAR

    TEXT_TYPE

    FIELD_TYPE_TINY BLOB FIELD_TYPE_MEDIUM BLOB FIELD TYPE BLOB FIELD TYPE LONG BLOB FIELD TYPE VAR STRING FIELD TYPE STRING



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect; $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";
    my $query3 = "UPDATE myothertable SET name='Bob' WHERE name='Joe'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $myothertable_input = $db->query($query3);

    # $mytable_output содержит результаты запроса к 'mytable'

    # $myothertable_output содержит результаты запроса к 'myothertable'

    print "Обновление 'myothertable' повлияло на имена в $myothertable_input

    \n";



    Отключить сообщения об ошибках. Действует,

    Пример

    use Msql;

    # Отключить сообщения об ошибках. Действует, только если сценарий
    # запущен с '-w'.

    $Msql::QUIET = 1;

    # Выполняем многословную часть...

    # Снова включаем сообщения об ошибках. $Msql::QUIET = undef;



    Tenepb значение строки

    Пример

    use Msql;

    my $db = Msql->connect;

    my $string = "Это ' (одинарная кавычка)";
    my $qstring = $db->quote($string);

    print qq% Tenepb значение строки "'Это\\' (одинарная кавычка)'" : $qstring\n%;



    Выбранной базой данных является

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    # Выбранной базой данных является 'mydata'
    if ($db->database ne 'mydata') {

    wаrn('Базу данных выбрать не удалось!'); }

    $db->selectdb('myotherdata');

    # Теперь выбрана база данных 'myotherdata'



    Пора закрывать базу

    Пример

    use Msql;

    my $db = Msql->connect;

    # Пора закрывать базу данных...

    my $result = $db->shutdown;

    die "Команда не выполнена!" if $result — -1;

    print "Сервер остановлен.\n";



    в гораздо более приемлемом виде,

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    print "Моя таблица:\n", $mytable_output->as_string;

    # Выводится вся таблица в гораздо более приемлемом виде,
    # чем в примере Msql:[Statement:ifetchhash.



    Теперь указатель установлен на начало

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Squery = "SELECT name, date FROM myothertable";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcol(0);
    my @dates = $myothertable_output->fetchcol(1);

    # Теперь указатель установлен в конце таблицы.

    $myothertable_output->dataseek(0);

    # Теперь указатель установлен на начало таблицы,

    print "Это первая строка данных: ", $myothertable_output->fetchrow, "\n".



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->query($query);

    my @names = $myothertable_output->fetchcor(0);

    # @names содержит теперь все имена.

    my @dates = $myothertable_output->fetchcol(1);

    # ©dates содержит теперь все даты.

    for (0..$#names) {

    print "Row $_: $names[$_], $dates[$_]\n"; }



    fields содержит теперь имена всех

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->query($query);

    my %first_data_row = $mytable_output->fetchhash;

    my @fields = keys %first_data_row;

    # @ fields содержит теперь имена всех полей. В результате, фактически нет

    # нужды использовать Msql::listfields, поскольку ее данные и многие

    If другие можно получить через описатель команды, возвращаемый

    # Msql::query.

    my (%data_row);

    print ]oin("", ©fields), "\n';

    print "-"x70;

    print join("", values(%first_data_row);

    print join("", values(%data_row)) while %data_row = $mytable_output-

    >fetchhash;

    # Таким образом распечатывается вся таблица, хотя и в невыравненном

    # формате.



    SELECT name, date FROM myothertable

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $query1 = "SELECT * FROM mytable";

    my $query2 = " SELECT name, date FROM myothertable WHERE name LIKE

    'Bob%'";

    my $mytable_output = $db->query($query1);

    my $myothertable_output = $db->query($query2);

    my $i = 0;

    # Чтение строк данных будет продолжаться,

    # пока их больше не останется.

    while (my(@mytable_rows)=$mytable_output->fetcnrow) {
    print "Строка ",$i++,": ".join(', ',@mytable_rows)."\n";
    # Если неизвестна структура таблицы 'mytable',
    # нельзя узнать число элементов в @mytable_rows или их порядок.

    }

    my (Sname, $date);

    # Это первая строка данных в $myotrertable_output.

    ($name, $datc) = $myothertaPle_output->fetchrow;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrbw;

    # и т.д....



    не может быть

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mydata");

    my @names = $output->name;

    my @not_null = $output->isnotnull;
    for (0..$#not_null) {

    print "$names[$_] не может быть null\n"
    if $not_null[$_]; }



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $dD->query(" select name, date from myothertable");

    print "Name является числом"
    if $output->isnum->[0];
    print "Date является числом"
    if $output->isnum->[1];



    В запросе участвует не меньшее

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output-= $db->query("select * from mytable");

    my @prikeys = $output->isprikey;

    my $number_of_prikeys = scalar @prikeys;

    print "В этом описателе команды $number_of_prikeys первичных ключей. ",

    " В запросе участвует не меньшее число различных таблиц, поскольку ".

    "в каждой таблице может быть только один первичный ключ\n";



    у вас есть одно

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select- * from mytable");

    my @types = $output->type;

    my @lengths = $output->length;
    for (0..$#types) {

    if ($types[$_] == &Msql: :CHAR_TYPE and $lengths[$_] > 1000000) {
    print "В этой таблице у вас есть одно о-очень большое поле CHAR!\";

    } }



    есть следующие индексы:

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my ©indices = $mytable_fields->listindices;

    print "B 'mytable' есть следующие индексы: " . join(", ",@indices) .

    "\n;

    Самое длинное имя имеет длину

    Пример

    use Msql;

    $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select name, date from myothertable');

    print " Самое длинное имя имеет длину " . $ouput->maxlength->[0] . " символов,\n";



    список колонок

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my @column_names = $output->names;

    # Теперь @column_names - список колонок 'mytable'



    Всего имеется Snumrows строк данных.

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query("select * from mytable");

    my $numfields = $output->numfields;

    my $numrows = $output->numrows;

    print "В каждой строке таблицы 'mytable' $numfields полей \n";

    print " Всего имеется Snumrows строк данных. Поэтому 'mytable'\n";

    print "содержит" . ($numfields*$numrows) . " элементов данных.\n";



    my Soutput

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query("select * from mytable");

    my $numrows = '$output->numrows;

    print "B 'mytable' содержится $numrows строк данных\n";



    name from myothertable, mythirdtable where

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my Soutput = $db->query('select myothertable. name, myothertable.date,

    mythirdtable. name from myothertable, mythirdtable where myothertable. name

    = mythirdtable. name');

    my @tables = $output->table;

    # @tables содержит теперь ('myothertable', 'myothertable', 'mythirdtable')



    select name, date from

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $output = $db->query(" select name, date from myothertable");

    my ($name_type, $date_type) = $output->type;

    for ($name_type) {

    $_ eq &Msql: :CHAR_TYPE and do {
    print ''name является CHAR';
    last;
    } $_ eq &Msql::INT_TYPE and do {
    print 'name является INT'; last; } # и т.д....

    }

    # повторить для $date_type



    Я подключен

    Пример

    use Msql;

    my $db = Msql->connect;

    my $sock = $db->sock;

    print " Я подключен к сокету $sock.\n";



    types дает доступ ко всем

    Пример

    use Msql;

    %types = (

    'CHAR' => &Msql::GHAR_TYPE, 'INT' => &Msql::INT_TYPE, 'REAL' => &Msql::REAL_TYPE, 'SYSVAR' => &Msql::SYSVAR_TYPE, 'TIME' => &Msql::TIME_TYPE, 'MONEY' => &Msql::MONEY_TYPE, 'UINT' => &Msql::UINT_TYPE, 'TEXT' => &Msql::TEXT_TYPE, 'NULL' => &Msql::NULL_TYPE, 'DATE' => &Msql::DATE_TYPE, 'IDENT' => &Msql::IDENT_TYPE, 'IDX' => &Msql::IDX_TYPE,

    );

    # $types{'CHAR'} является теперь легкодоступным псевдонимом для

    # &Msql::CHAR_TYPE. Наличие значений в % types дает доступ ко всем
    # удобным функциям работы с хешами, такими как keys() и values().



    Вы используете

    Пример

    use Msql;

    print " Вы используете Msql.pm версии $Msql::VERSION.\n";



    Теперь описатель базы данных соединен

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata','webuser1, 'super_secret_squirrel');

    # Теперь описатель базы данных соединен с локальным сервером MySQL и
    # использует базу данных 'mydata1.

    # Использовано имя пользователя 'webuser' для

    # соединения с паролем 'super_secret_squirrel'.



    В этом запросе есть синтаксическая

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata','webuser', 'super_secret_squirrel');

    # В этом запросе есть синтаксическая ошибка...
    my $output = $db->query( 'SELECT * from mydata');

    if (not $output) {

    print "Ошибка " . $output->errno . ": " . $output->errfnsg . "\n"; }



    SELECT name, data from

    Пример

    use Mysql;

    my $db = Mysql->connect(undef, 'mydata');

    my Soutput = $db->query(" SELECT name, data from myothertable");

    if ($output->type->[0] = &Mysql::FIELD_TYPE_STRING) {

    print "Name является STRING.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(" UPDATE mytable set name='bob' where

    name='joe'");

    print $output->affectedrows . " строк обновлено.\n";



    Результат работы LOAD DATA:

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query("LOAD DATA INFILE 'mydata.dat' INTO TABLE mytable");

    my $info = $output->info($output);
    print " Результат работы LOAD DATA: $info\n";



    INSERT into mytable

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(

    " INSERT into mytable (id, name, date) VALUES ('','bob', 'today')";

    my $new_id = $output->insertid;

    print "Bob был введен с ID, равным $new_id.\n";



    SELECT name, data from

    Пример

    use Mysql;

    $db = Mysql->connect(undef,'mydata');

    my $output = $db->query(' SELECT name, data from myothertable');

    if ($output->isblob->[0]) {

    print "Name является полем BLOB.\n"; }
    else {

    print "Name не является полем BLOB.\n"; }



    UPDATE mytable set

    Пример

    use Mysql;

    my $db = Mysql->connect(undef,'mydata');

    my $outpuf= $db->query(" UPDATE mytable set name='joe' where

    name='bob' ");

    # $output является описателем команды.

    n Ho нас интересуют только

    Пример

    use DBI;

    my @drivers = DBI->available_drivers;

    print "Доступны следующие драйверы:\n" . join("\n",@drivers) . "\ n Ho нас интересуют только mSQL и mysql. :)\n";



    SELECT name, date FROM

    Пример

    use OBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_output = $db->prepare($query);

    my ($name, $date);

    $myothertable_output->bind_col(1,\$name,undef);

    $myothertable_output"bind_col(2, \$date, undef);

    # Теперь $name и Sdate привязаны к соответствующим полям выходных данных.

    $myothertable_output->execute;

    while ($myothertable_output->fetch) {

    # Каждый раз $name и $date автоматически изменяются.

    print "Имя: $name Дата: $date\n"; }



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $query = " SELECT name, date FROM myothertable";
    my $myothertable_oulput = $db->prepare($query);

    my ($name, $date);

    $mynfhertable_outpul->bind_columns(undef, \($name, $daLe));

    # $name и $date теперь привязаны к соответствующим полям в выдаче,

    $myothertable_output->execute;

    while ($myothertable_output->fetch)
    {

    # $name и $date каждый раз автоматически изменяются.

    print "Имя: $name Дата: $date\n";
    }



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBD:msql:mydata','me','mypass');

    my Sstatement = $db->prepare(

    " SELECT name, date FROM myothertable WHERE name like ? OR name like ?");

    $statement->bind_param(1,'J%','SQL_CHAR');

    $statement->bind_param(2,'%oe%', { TYPE => &DBI::SQL_CHAR });

    # Теперь команда будет такой:

    # SELECT name, date FROM myothertable WHERE name like 'J%' or name like

    '%oe%'



    При соединении использовались имя пользователя

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI: mSQL:mydata',undef,undef);

    # Теперь $db1 представляет соединение с базой данных 'mydata'на локальном

    # сервере mSQL.

    my $db2 = DBI->connect( 'DBI:mysql:mydata:myser-ver.com','me','mypassword');

    # Теперь $db2 представляет соединение с базой данных 'mydata' сервера MySQL
    # 'myserver.com' через порт по умолчанию.

    # При соединении использовались имя пользователя 'те' и пароль 'mypassword'.
    my $db3 = DBI->connect('DBI:mSQL:mydata',undef,undef, {

    RaiseError => 1 });
    # Теперь $db3 - такое же соединение, как $db1, за исключением того, что

    # установлен атрибут 'RaiseError'.



    Должны быть установлены

    Пример

    use DBI;

    my §msql_data_sources = DBI->data_sources('mSQL');
    my @mysql_data_sources = DBI->data_sources('mysql');

    # Должны быть установлены DBD::mSQL и DBO::mysql, иначе

    # выполнение программы прекратится.

    print "mSQL databases:\n" . join("\n",@msql_data_sources) , "\n\n";
    print "MySQL databases:\n" . join("\n",@mysql_data_sources) . "\n\n";



    rows_affected Joe заменены на

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $rows_affected = $db->do("UPDATE mytable SET name='Joe' WHERE name='Bob"');
    print "$ rows_affected Joe заменены на Bob's\n";

    my $rows_affected2 = $db->do("INSERT INTO mytable (name) VALUES (?)", {}, ("Sheldon's Cycle"));

    # После заключения в кавычки и подстановки

    # серверу базы данных посылается команда

    #INSERT INTO mytable (name) VALUES ('Sheldon's Cycle')



    mydata' разорвано. Соединение

    Пример

    use DBI;

    my $db1 = DBI->connect( 'DBI:mSQL:mydata',undef,undef);

    my $db2 = OBI->connect('DBI:mSQL:mydata2',undef,undef);

    $db1->disconnect;

    # Соединение ' mydata' разорвано. Соединение с 'mydata2'

    # продолжает действовать.



    SELECT name, date FROM

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my Squery = " SELECT name, date FROM myothertable";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    print DBI::dump_results($myothertable_output);
    # Вывести результаты в аккуратной таблице.

    open(MYOTHERTABLE, ">>myothertable");

    print DBI: :dump_results($iriyothertable_output,
    undef,undef,undef,\*MYOTHERTABLE);

    # Снова вывести результаты в файл 'myothertable,'.



    Этот запрос имеет синтаксическую

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    # Этот запрос имеет синтаксическую ошибку...

    my Soutput = $db->prepare('SLECT * from mydata');

    $output->execute;

    if (not $output) {

    print "Error $DBI:err: $DBI:errstr\n"; }



    Boj последняя ошибка DBI:

    Пример

    Use DBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'wcbuscr','super_secret_squirrel');

    my $error = $db->errstr;

    warn(" Boj последняя ошибка DBI: $error");



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('OBI:mSQL:mydata',undef,undef);
    my $statement_handle = $db->prepare("SELECT * FROM mytable");
    my $statement_handle2 = $db->prepare(" SELECT name, date FROM myothertable WHERE name like ?");

    $statement_handle->execute;

    # Выполнена первая команда.К значениям можно

    # обращаться через описатель.

    $statement_handle->execute("J%");

    # Выполнена вторая команда следующего содержания:

    # SELECT name, date FROM myothertable WHERE name like 'J%'



    data является ссылкой на массив

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata' ,undef,undef);

    my $query = "SELECT name, date FROM myothertable";

    my Soutput = $db->prepare($query);

    $output->execute;

    my $data = $output->fetchall_arrayref;

    # Теперь $ data является ссылкой на массив массивов. Каждый элемент

    # 'главного' массива сам является ссылкой на массив, содержащий строку данных.

    print "Четвертой строкой данных в таблице является: " . $data->[3][1]. "\n";
    # Элемент 3 'главного' массива является массивом, содержащим четвертую
    # строку данных, # Элемент 1 этого массива является датой.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE 'Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my ($name, $date);

    # Это первая строка из $myothertable_output.

    ($name, $date) = $myothertable_output->fetchrow_array;

    # Это следующая строка...

    ($name, $date) = $myothertable_output->fetchrow_array;

    # И еще одна...

    my @name_and_date = $myothertable_output->fetchrow_array;

    # и т.д.....



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata', undef, undef);

    my $query = " SELECT name, date FROM myothertable WHERE name LIKE -Bob%'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $name1 = $myothertable_output->fetch->[0]

    # Это поле 'name' из первой строки данных,
    my $date2 = $myothertable_output->fetch->[1]

    # Это поле 'date' из второй строки данных.

    my ($name3, $date3) = @{$myothertable_output->fetch};

    # Это целиком третья строка данных.
    $myothertable_output->fetch

    # возвращает ссылку на массив. Можно 'преобразовать' ее в действительный

    # массив, используя конструкцию @{}.



    field_names содержит теперь имена всех

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    my %row1 = $mytable_ouput->fetchrow_hashref;
    my @field_names = keys %row1;

    # @ field_names содержит теперь имена всех полей в запросе.

    # Это делается только один раз. Во всех следующих строках будут те же поля,
    my @row1 = values %row1;



    mytable_output или подготовить для

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $query = "SELECT * FROM mytable";

    my $mytable_output = $db->prepare($query);

    $mytable_output->execute;

    $mytable_output->finish;

    # Теперь можно переназначить $ mytable_output или подготовить для него

    # другую команду SQL.



    tables содержит теперь список таблиц

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my @tables =.$db->func('„List-Tables');

    # @ tables содержит теперь список таблиц в 'mydata'.



    Это очень, очень длинная строка,

    Пример

    use DBI;

    my $string = " Это очень, очень длинная строка, в которой много чего написано. ";

    my$neat_string = OBI: :neat($string,14);
    # Теперь $neat_string такая: 'Это очень, оче...



    neat_string такая:

    Пример

    use DBI;

    my @list = (' Bob', 'Joe', 'Frank');

    my $neat_string = DBI::neat_list(\@list, 3);

    # Теперь $ neat_string такая: 'Bob', 'Joe', 'Fra...



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mysql:mydata','me','mypassword');

    my $statement_handle = $db->prepare('SELECT * FROM mytable');

    # Теперь эта команда готова к выполнению.

    My $statement_handle = $db->prepare(' SELECT name, date FROM myothertable WHERE name like ?');

    # Эта команда будет готовя к выполнению после подстановки # с использованием функции DBI::bind_param.



    Теперь обе строки годятся для

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mSQL:mydata',undef,undef);
    my $db2 = DBI->connect('DBI:mysql:myotherdata','me','mypassword');

    my $string = "Sheldon's Cycle";

    my $qs1 = $db1->quote($string);

    # $qs1: 'Sheldon\'s Cycle' (включая наружные кавычки)
    my $qs2 = $db2->quote($string);

    # $qs2 : 'Sheldon's Cycle' (включая наружные кавычки)

    # Теперь обе строки годятся для использования в командах для своих

    # соответствующих серверов баз данных.



    SELECT name, date FROM myothertable

    Пример

    use DBI;

    my $db = DBI->connect('DBI:mSQL:mydata',undef,undef);

    my $query = " SELECT name, date FROM myothertable WHERE name='Bob'";

    my $myothertable_output = $db->prepare($query);

    $myothertable_output->execute;

    my $rows = $myotnertable_output->rows;

    print "В таблице 'myothertable' есть $rows строк 'Воb'\n";



    BoT последняя по времени ошибка

    Пример

    Use OBI;

    my $db = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirгеl');

    my $sql_error = $db->state;

    warn(" BoT последняя по времени ошибка DBI SQL: $sql_error");



    Включена трассировка для всех описателей

    Пример

    use DBI;

    my $db1 = DBI->connect('DBI:mysql:mydata',
    'webuser','super_secret_squirrel');

    my $db2 = DBI->connect('DBI:mSQL:myotnerdata',undef,undef);

    DBI >trace(2);

    # Включена трассировка для всех описателей на уровне 2.

    $db2->trace(0);

    # Отключена трассировка для $db2, но продолжает действовать для $db1

    $db1->trace(2,'DBI.trace');

    # Теперь включена трассировка для всех описателей на уровне 2, выдача

    # посылается в файл 'DBI.trace'.



    fields содержит теперь список

    Пример

    use DBI;

    my $db = DBI->connect('mysql:mydata','me','mypassword');

    $db->{RAISE_ERROR} = 1;

    # Теперь любая ошибка DBI/DBD убьет программу.

    my $statement_handle = $db->prepare('SELECT * FROM mytable');
    $statement_handle->execute;

    my @fields = @{$statement_handle->{NAME}};

    # @ fields содержит теперь список с именами всех полей в 'mytable'.



    с сокетом Unix локального узла

    Пример

    use Msql;

    # Соединение с сокетом Unix локального узла ' my $db = Msql->connect;

    # Или...

    # Соединение с узлом 'www.myserver.com' без указания, базы данных
    mу $db = Msql->connect('www.myserver.com');

    # Или...

    # Соединение с сервером 'www.myserver.com' и выбор базы данных 'mydata'
    mу $db = Msql->connect('www.myserver.com','mydata');



    База данных не

    Пример

    use Msql;

    my $db = Msql->connect;

    my $my_new_database = 'mynewdata';

    my $result = $db->createdb($my_new_database);

    die " База данных не создана!"
    if $result == -1;

    print "$my_new_database создана.\n";



    Здесь должно быть выведено

    Пример

    use Msql;

    my $db = Msql->connect('www.myserver.com','mydata');

    my $database = $db->database;

    print " Здесь должно быть выведено 'mydata': $database\n";



    Команда не

    Пример

    use Msql;

    my $db = Msql->connect;
    my $result = $db->dropdb('mydata');
    die " Команда не выполнена!"
    if result == -1;
    print "'mydata' потеряна навсегда.\n";



    Вот последняя по времени ошибка

    Пример

    use Msql;

    my $db = Msql->connect;

    my Serror = $db->errmsg;

    warn(" Вот последняя по времени ошибка mSQL: $error");



    B mytable не задана последовательность"

    Пример

    use Msql;

    my $db = Msql->connect;

    my ($step, $value) = $db->getsequenceinfo('mytable');

    die " B mytable не задана последовательность" if not $step;

    print "B mytable есть последовательность со значением $value и шагом

    $step\n";



    вы видите

    Пример

    use Msql;

    my $ijh - Msql->connect( 'www.myserver.com');

    my $host = $db->host;

    print "Вероятно, вы видите 'www.myserver.com': $host\n";



    Имеющиеся базы

    Пример

    use Msql;

    my $db = Msql->connect;

    my @databases = $db->listdbs;

    print " Имеющиеся базы данных:\n\n" . join("\n",@databases);



    fields явяется ссылкой на все

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $fields = $db->listfields('mytable');

    warn ("Проблемы с 'mytable-': " . $db->errmsg)
    if (not $fields);
    # $ fields явяется ссылкой на все поля в таблице 'mytable'.
    print "mytable содержит следующие поля:\n";
    print $fields->as_string;



    type_of_index содержит теперь тип индекса

    Пример

    use Msql;

    my $db = Msql->connect;

    $db->selectdb('mydata');

    my $mytable_fields = $db->listfields('mytable');

    my @indices = $mytable_fields->listindices;

    # Я знаю имена всех индексов.

    foreach (@indices) {

    my $index_info_handle = $db->listindex('mytable',$_);
    my (@index_info) = $index_info_handle->fetchcol(0);
    my $type_of_index = shift(@index_info);

    # $ type_of_index содержит теперь тип индекса (вероятно, 'avl'),
    # a @index_info содержит теперь список полей в индексе.



    database есть следующие

    Пример

    use Msql;

    my $db = Msql->connect;

    my @tables = $db->listtables;
    my $database = $db->database;
    print "B $ database есть следующие таблицы:\n\n" join("\n",@tables);



    Соответствие типов SQL

    Таблица 21-1. Соответствие типов SQL



    Use Msql

    use Msql

    use Msql;

    Это объявление должно быть в любой программе Perl, использующей модуль Msql.pm.



    Use

    use

    use DBI;

    Следует объявлять во всех программах Perl, использующих модуль DBI.



    Установка

    Установка

    Для использования интерфейсов mSQL и MySQL к модулям DataBase Dependent/DataBase Independent (DBI/DBD) или MsqlPerl и MysqlPerl необходимо иметь следующие компоненты:

    Perl 5

    В вашей системе должны быть установлены работающие экземпляры Perl 5. Ко времени написания этой книги последний релиз Perl имел номер 5.005_02. Следует пользоваться по меньшей мере Perl 5.004, поскольку в более ранних версиях были ошибки, связанные с защитой. Более подробные сведения о Perl, включая адреса для загрузки, можно найти по адресу: http://www.perl.com.

    DBI

    Независимую от базы данных часть модуля DBI/DBD можно загрузить из Comprehensive Perl Archive Network (CPAN). На момент написания книги последней версией был DBI-0.90. Он находится на http://www.perl.com/CPAN/authors/id/TIMB/DBI/DBI-l.06.tar.gz.

    Data::ShowTable

    Модуль Data::ShowTable упрощает отображение больших объемов данных. Это требуется для модулей Msql-Mysql. Последняя версия - Data-ShowTable-З.З, ее можно найти по адресу: http://www.perl.com/CPAN/authors/id/AKSTE/Data-ShowTable-3.3.tar.gz.

    mSQL и /или MySQL

    В главе 3 "Установка" подробно рассказано о том, как получить и установить серверы баз данных mSQL и MySQL.

    Компилятор С и сопутствующие средства

    Для модулей MsqlPerl и MysqlPerl необходим ANSI-совместимый компилятор С, а также обычные сопутствующие средства, такие как make, Id и т. д. Вам должно хватить тех средств, с помощью которых вы собрали Perl. Если у вас нет этих инструментов, компилятор GNU С и все необходимые поддерживающие программы можно бесплатно получить на ftp://ftp.gnu.org/pub/gnu/.

    В настоящее время модули Msql-Mysql поддерживает Йохен Видман (Jochen Wiedmann), чье ID в CPAN выглядит как JWIED. Поэтому текущие модули Msql-Mysql всегда можно найти на http://www.perl.com/ authors/id/ JWIED. На момент написания книги текущей версией была Msql-Mysql-modules-1.2017.tar.gz.

    После загрузки пакета разархивируйте его:

    tar xvzf Msql-Mysql-modules-1.2017.tar.gz
    cd Msql-Mysql-modules-1.2017

    В каталоге дистрибутива есть файл INSTALL, содержащий несколько советов по установке. Сначала нужно выполнить файл Makefile.PL:

    perl Makefile.PL

    Эта команда сначала спрашивает, желаете ли вы установить модули для mSQL, MySQL или те и другие. Можно установить модули для любого установленного вами сервера баз данных.

    После проверки системы программа запрашивает местоположение установки mSQL. Это каталог, содержащий подкаталоги lib и include, в которых расположены библиотеки и включаемые файлы mSQL. По умолчанию этим каталогом является /usr/local /Hughes, но обязательно проверьте это, поскольку во многих системах используется /usr/local или даже /usr/local/Minerva.

    Затем сценарий установки запрашивает путь к MySQL. Как и в случае mSQL, это каталог, содержащий надлежащие подкаталоги lib и include, по умолчанию - /usr/local. Это расположение верно для большинства установок, но следует обязательно проверить, не используются ли другие каталоги.

    После установки сценарий создает соответствующие make-файлы и завершается. Затем нужно запустить make и скомпилировать файлы.

    make

    Если вы правильно установили Perl, mSQL и/или MySQL, то команда make должна пройти без ошибок. После завершения ее работы будут созданы все модули, и единственное, что останется - это протестировать и установить их.

    make test

    Во время выполнения по экрану пробегает ряд отладочных имен, за каждым из которых должно следовать . . . ok. И наконец, нужно установить модули.

    make install

    У вас должно быть разрешение записи в каталог установки Perl. Кроме того, необходимо иметь разрешение на запись в системный каталог для программ (обычно /usr/local/bin или /usr/bin), чтобы установить поставляемые с модулем вспомогательные программы pmsql, pmysql и dbimon.



    

        Бизнес в интернете: Сайты - Софт - Языки - Дизайн