Гольцман Виктор
Шрифт:
4. Запустите Internet Explorer (Пуск → Все программы → Internet Explorer) или любой другой браузер. В адресной строке браузера введите следующий адрес: http:// localhost/cgi-bin/test.pl. Появление текста «Работа с MySQL» (рис. 4.20) на вебстранице означает, что Perl-приложения выполняются нормально.
Рис. 4.20. Результат выполнения приложения
Аналогичная последовательность действий используется для создания всех последующих сценариев Perl в данном разделе. Приступим к разработке приложения, взаимодействующего с базой данных MySQL.
Подключение к базе данных
Прежде чем использовать команду подключения к базе данных MySQL, укажем интерпретатору Perl, что необходимо использовать модуль Perl DBI. Для этого включим в сценарий командуuse DBI;
Для подключения к базе данных используется метод
connect(«DBI:mysql:database=<Имя базы данных>;host=<Имя
хоста>[;port=<Номер порта>]»,»Имя
пользователя»,»Пароль»[,<Режим обработки ошибок>]);Метод connect создает соединение с базой данных и возвращает дескриптор соединения – указатель на объект, отвечающий за взаимодействие с базой данных и реализующий все методы работы с БД. Если установить соединение не удалось, метод connect возвращает значение undef.
Примечание
Необязательный параметр port по умолчанию принимает значение 3306. Режим обработки ошибок мы обсудим в подразделе «Обработка ошибок».
Например, вызов метода my $dbh = DBI —»
my $dbh = DBI ->
connect(«DBI:mysql:database=SalesDept;host=localhost»,
“username”,”userpassword”);осуществляет подключение к серверу MySQL, работающему на локальном компьютере, используя имя пользователя username и пароль userpassword. При этом база данных SalesDept выбирается в качестве текущей. Дескриптор соединения сохраняется в переменной $dbh.
Совет
В целях защиты от несанкционированного доступа рекомендуется подключаться к базе данных не от имени пользователя root, а от имени специально созданного пользователя с минимально необходимыми правами доступа. О регистрации пользователей и настройке прав далее будет рассказано подробно.
После окончания работы с базой данных отключимся от нее с помощью метода disconnect;
Рассмотрим пример приложения, которое подключается к базе данных и выводит диагностическое сообщение. Создайте в папке cgi-bin корневой папки XAMPP файл connect.pl и введите в него код, представленный в листинге 4.10.
Листинг 4.10.
Подключение к базе данных
#!»C:\Program Files\xampp\perl\bin\perl.exe»
print «Content-type: text/html; charset=windows-1251\n\n»;
#Подключаем модуль DBI
use DBI;
#Подсоединяемся к базе данных
my $dbh = DBI -> connect(“DBI:mysql:database=SalesDept;host=localhost”,
“username”,”userpassword”);
if(!$dbh)
{
print(“Ошибка доступа к базе данных. Приносим свои извинения”);
}
else
{
print “Подключение выполнено успешно”;
}
#Отсоединяемся от базы данных
$dbh->disconnect;
Сохраните файл connect.pl, а затем наберите в адресной строке браузера адресПри успешном подключении на веб-странице появится соответствующее сообщение (рис. 4.21).
После подключения к серверу MySQL вы можете получать данные из базы и записывать их в базу. В следующем подразделе вы узнаете о сохранении данных.
Ввод данных в базу
В этом подразделе приводятся сведения о том, как создать приложение, которое записывает в базу введенные пользователем данные. Вначале рассмотрим метод, позволяющий выполнить SQL-команду, не предполагающую получения данных из базы (например, INSERT, UPDATE или DELETE):do(«<Текст команды>»[, <Неиспользуемый параметр>,<Привязываемые параметры>])
Метод do возвращает количество строк, с которыми была выполнена операция, значение -1, если количество строк неизвестно, и значение undef в случае ошибки.
Примечание
Если SQL-команда была выполнена успешно, но не произвела действий с одной строкой, то метод do возвращает значение E0E, которое рассматривается как числовое значение 0 и как логическое значение TRUE.
Единственным обязательным параметром метода do является текст SQL-команды, которую необходимо выполнить. Например, установить кодировку можно следующим образом: