Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

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

div.main {margin-left: 20pt; margin-right: 20pt}

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


Сухинин A., Webscript.ru


Таблицы готовы. Теперь в них надо что-то записать. Чтобы записать, нужно туда что-то передать. вообщем, формат записи следующий: 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-оболочку. Об этом в следующей статье.


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2020
    Реклама на сайте