Контакты

Для связи с нами можно использовать:
irc://irc.chatnet.ru:#gfs
icq://546460
email://cobalt[@]gfs-team.ru

Все материалы предоставлены только с ознакомительной целью
ГлавнаяСтатьиКодингPerl. Работа с MySQL
© Cobalt 20.05.2006 статья не оптимизирована

 Для работы с БД MySQL в Perl существуют целых два способа. Первый из них
состоит в использовании модуля DBI. В этой статье я не буду описывать этот
способ. Если ты хочешь узнать о нем подробнее, то можешь почитать следущую
документацию:

 Домашняя страничка DBI
 
 Второй способ, который сне больше нравится заключается в использовании модуля
Mysql. Обычно он уже включен в стандартную поставку Perl. Но если ты, как и
автор данного мануала, юзаешь ActivePerl, то с установкой у тебя проблем не
возникнет. Достаточно подключиться к интернету и запустить ppm.bat . С помощью
этой утилиты можно установить любые недостающие модули.

 Для использования функций работа с MySQL необходимо подключить модуль:
use Mysql; После чего надо подключиться к БД. Делается это так:

 $db = Mysql->Connect($host,$database,$password,$user);
 
Если команда Connect используется без аргументов, или с пустой строкой в качестве
первого аргумента, то мы свяжемся с устройством UNIX /dev/mysql. Это обычно
повышает производительность соединения. Если не указан аргумент $database, то
нам в последствии придеться выполнить команду выбора базы данных:

 $db->SelectDB($database);
 
 Теперь можно приступать к работе с базой. Для начала просмотрим список полей
в одной из ее таблиц. Делается это командой:

 $sth=ListFields($db,$table);
 
 После ее выполнения, мы можем извлеч из объекта $sth интересующую нас
информацию.

 @arr=$sth->name         Возвращает массив имен столбцов
 @arr=$sth->length       Возвращает массив длин столбцов
 $val=$sth->numfields    Возвращает количество столбцов в таблице
 @arr=$sth->type         Массив MySQL типов
 @arr=$sth->is_num       Массив 0 и 1, где 1 указывает что столбец числовой
 @arr=$sth->is_blob      Массив 0 и 1, где 1 указывает что столбец - blob
 @arr=$sth->is_not_null  Массив 0 и 1, где 1 указывает что столбец - не NULL
 
 Узнать список имеющихся баз данных можно командой:
 
 @arr=$db->ListDBs;
 
 Тоже самое, чтобы узнать список таблиц в базе, надо выполнить:
 
 @arr=$db->ListTables;
 
 Для того чтобы выполнить SQL запрос, необходимо воспользоваться командой

 $sth=$db->Query($sql);
 
 Результат выполнения запроса $sql можно получить командами FetchRow, FetchCol
и FetchHash. Их ситаксис следущий:

 @arr=$sth->FetchRow;       Возвращает в массиве первую строку результата
                               запроса.
 @arr=$sth->FetchCol($col); Возвращает массив элементов колонки с номером
                               $col из результата запроса.
 %hash=$sth->FetchHash;     Возвращает ассоциативный массив, содержащий
                               следующую строку, полученную с сервера.
                               
 Так же можно сразу переместиться на определенную стоку результата запроса
воспользовавшись командой:

 DataSeek($sth, $number);
 
 Как известно, некоторые символы при занесении в MySQL необходимо экранировать.
Для этого служит команда: $scaler=$db->quote($string);

Ну вот собственно говоря и все. Кому-то может быть покажется что эти функции
чем-то похожи на php, кому-то на c++, но главное то что они довольно просты в
применении.

Линки по теме:

  Домашняя страничка Mysql
  Домашняя страничка msql

 Успехоф тебе в работе с БД ).



© Cobalt 20.05.2006 статья не оптимизирована

e-Commerce Partners Network
Volniy написал:

А как можно выполнить SQL запросы каторые храняться в файлах?

Влад написал:

потратил полчаса чтобы понять что указанный в теме :
$db = Mysql->Connect($host,$database,$password,$user);
неверно
верно:
$db = Mysql->Connect($host,$database,$user,$password);

Ник:

Текст:
P Br B I Qute



Код: обновить
Последние комментарии
17.08.2017 17:38:27 DanielBIOLA написал:
Ламинин Lamnine LPGN в Україні, в Украине, Украина Ckaйп evg7773 15-23-28...
Взлом домофонов
17.08.2017 00:22:06 Avia777dymn написал:
<b>Авиабилеты по РУ за 60 процентов от цены кассы.</b> по МИРУ...
Сайт снова работает!
16.08.2017 11:13:50 Avia777dymn написал:
<b>Авиабилеты по РУ за 60 процентов от цены кассы.</b> по МИРУ...
Предупреждение
Реклама

Тут должна была быть ваша реклама, но мы потеряли глиняную табличку с ее текстом. SapeId: 665044

Rambler's Top100