RTFM! статьи, советы, скрипты
::Заработок с помощью сайта ::JScript по-русски! ::Все русские мануалы::
МЕНЮ
О САЙТЕ
НОВОСТИ
СТАТЬИ
КНИГИ
АППЛЕТЫ
СВЯЗЬ

СЧЕТЧИКИ
Rambler's Top100
Рейтинг@Mail.ru
Яндекс цитирования

Работа с MySql - наполнение данными

Автор: Сухинин A Сайт: http://www.webscript.ru/     Рейтинг: N/A из 7       <<НАЗАД
   
   
   
   Таблицы готовы. Теперь в них надо что-то записать. Чтобы записать, нужно туда что-то передать. вообщем, формат записи следующий:
   
   INSERT INTO category (id, name) VALUES ('', 'Интернет')
   
   и, соответственно, perl инструкция:
   
   
   $dbh->do("INSERT INTO category (id, name) VALUES ('', 'Интернет')");
   
   
   В данном случае, SQL инструкцией INSERT INTO вставляем в тадлицу category в поля id, name значения " ", "Интернет". Поле id автоматически получит следующее значение, т.е. если не было записей, то там буде значение 1. Если у вас все ваши категории находятся в текстовом файле, то их можно подгрузить оттуда прямо в таблицу. Есть инструкция LOAD DATA INFILE. Чтобы загрузить данные из файла, который находится на локальной машине, нужно указать в инструкции ключевое слово LOCAL. Поля, в принципе могут быть разделены любым разделителем, текстовые поля могут быть заключены в кавычки. Записи закачиваются символом 'окончание строки'. SQL запрос будет выглядеть так:
   
   
   LOAD DATA LOCAL INFILE '/MyDocs/categories.txt' REPLACE INTO TABLE category FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'
   
   
   В данном случае файл categories.txt находится на машине под управлением MS Windows, в каталоге C:\MyDocs. Обратите внимание на UNIX стиль написания пути. Perl скрипт будет брать файл с текущего диска из каталога MyDocs. Слово REPLACE в SQL запросе означает, что необходимо замещать записи с совпадающими значениями ключей. INTO TABLE указывает имя талицы, куда будут импортированы данные. FIELDS TERMINATED BY ';' указывает разделители полей, порядок полей должен быть таким же, как и в таблице назначения, OPTIONALLY ENCLOSED BY '\"' указывает, что поля VARCHAR взяты в двойные кавычки, и LINES TERMINATED BY '\n' указывает, что записи заканчиваются символом новой строки (\n).В случае, если вы работаете в MS Windows, вам нужно указать LINES TERMINATED BY '\r', т.к. текстовые файлы в UNIX имеют окончание строки символ \n == 0x0A, а в MS Windows \r == 0x0D.
   Я экспериментировал с текстовым файлом следующего содержания:
   
   1;"Интернет"
   2;"Развлечения"
   3;"Документация"
   4;"Софт"
   5;"Поисковые системы"
   6;"Чаты"
   7;"Для разработчиков"
   8;"Документация по ПХП"
   9;"Фидо-гейты"
   10;"Новости"
   
   Как вы уже догадались, инструкция Perl выглядит так:
   
   $dbh->do("LOAD DATA LOCAL INFILE '/MyDocs/categories.txt' REPLACE INTO TABLE category FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'");
   
   Если не получилось, проверьте расположение файлов, синтаксис.
   После того, как данные импортированы, нужно простмотреть, что же у нас получилось. В SQL существует самая используемая инструкция SELECT. В нашем случае нужно написать следующий код:
   
   use DBI;
   # коннектимся к серверу MySql
   my $dbh = DBI->connect("DBI:mysql:database=ваша_база_данных;host=адрес_сервера_mysql",
   "логин", "пароль") || die $DBI::errstr;
   # готовим запрос
   my $result = $dbh->prepare("SELECT * FROM category");
   # и выполняем его
   $result->execute();
   # разбираем результат
   # результат помещается в хэш,
   # печатаем элементы поименно
   while (my $ln = $result->fetchrow_hashref()) {
   print "name : $ln->{'name'} id: = $ln->{'id'}\n";
   }
   $dbh->disconnect();
   
   Если вs использовали данные, приведенные выше, то получите следующее:
   
   name : Интернет id = 1
   name : Развлечения id = 2
   ....
   ....
   name : Новости id = 10
   
   
   
   С категориями разобрались, база данных хранит данные и отдает по первому требованию, скрипты на Perl работают, теперь все это нужно облачить в удобоваримую Web-оболочку.
   


<<НАЗАД      ОЦЕНИТЬ СТАТЬЮ    ВЕРСИЯ ДЛЯ ПЕЧАТИ>>
Статья прочитана :  раз.




пейкюлю



 
 
 
 
 
pauk ©® 2000-2015. All rights reserved.
При перепечатке ссылка на сайт и указание обязательны.
Мнение администрации сайта не всегда совпадает с мнением автора.
Орфография и пунктуация - авторские.
Администрация не несет никакой ответственности за использование материалов.
.
Protected by Copyscape DMCA Takedown Notice Infringement Search Tool