Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MYSQL проблема с INSERT в цикле, MYSQL проблема с INSERT в цикле 
:(
    Опции темы
Олег13
Дата 16.10.2011, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 28.6.2010

Репутация: нет
Всего: нет



Все доброго времени суток! 
Посоветуйте кто в курсе, я делаю команду INSERT в цикле (мне необходимо вставить 8000 строк), но почему-то вставляется только первая строка. Скрипт вроде бы корректный, ошибок во время выполнения не выдает. Никак не могу понять в чем проблема, голову уже сломал. Ниже привожу текст скрипта:
Код

#!/usr/bin/perl -w
#use strict;
use DBI;
use CGI;
use CGI qw (:standart);
use CGI qw(:cgi);
use CGI::Carp qw(fatalsToBrowser);

open FF, "<price.csv";
my @n=<FF>;
close FF;

my $dbh=DBI->connect("DBI:mysql:elt", "root", "1234567890") or die "Error: $DBI::errstr\n";
my $sth=$dbh->do("SET NAMES 'cp1251'");
##########
foreach $i (@n) {
@m=split(";",$i);
my $sql="insert into price (category,name,body,producer,price,description) values (\'$m[0]\',\'$m[1]\',\'$m[2]\',\'$m[3]\',\'$m[4]\',\'$m[5]\')";
my $sth=$dbh->do($sql); 
}
$dbh->disconnect;

print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title></title>\n";
print "</head>\n";
print "<body>\n";
print "Все записи добавлены!\n";
print "</body>\n";
print "</html>\n"; 

PM MAIL   Вверх
Pfailed
Дата 16.10.2011, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 22
Всего: 39



После 19 строки попробуйте добавить
Код

defined $sth or die $dbh->errstr;

Возможно узнаете причину.


--------------------
PM MAIL   Вверх
Олег13
Дата 16.10.2011, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 28.6.2010

Репутация: нет
Всего: нет



Спасибо Pfailed. Мне реально помог Ваш совет. Поблему конечно не решил. т.к. не имею доступ к mysql серверу, но теперь знаю из-за чего. 
Ошибка вот такая: "Duplicate entry '0' for key 1 at /share/elt.ru/data/cgi-bin/insert.pl line 22." Могу предположить, что эта ошибка связанна с дублирующим значением на автоинкрементном поле (есть у меня одно такое), только не пойму как оно могло образоваться.       Завтра буду админа напрягать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1916 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.