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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с Perl-овым скриптом 
:(
    Опции темы
fantome
Дата 13.7.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



allexeym, 
запрос при использовании DBI делается след. образом
Код

$sql_string = 'select Shop_ID, Shop_Name, Shop_SubDir, Div_ID,Aprove_Time from shop where Publish_St order by Aprove_Time desc';
$sth = $dbh->prepare ( $sql_string );
$sth->execute();

а вот после execute уже можно выбирать данные из запроса...

Это сообщение отредактировал(а) fantome - 13.7.2007, 15:28
PM MAIL   Вверх
allexeym
Дата 13.7.2007, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а с этим как?

Код

@last_shop_id_arr=$sth->fetchcol(0);


выдаёт аналогичную ошибку

Код

Can't locate object method "fetchcol" via package "DBI::st" at ./make_index.pl line 39.


PM MAIL   Вверх
nitr
Дата 13.7.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



allexeym, я ЕЩЁ РАЗ СКАЖУ - РАЗНЫЕ МОДУЛИ!!! Вы же используете из дургого модуля методы!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

DBI изучите!


Цитата(allexeym @  13.7.2007,  16:10 Найти цитируемый пост)
а с этим как?код Perl1:@last_shop_id_arr=$sth->fetchcol(0);


Код

use DBI;

my ($db_name, $host, $user, $pass) = ('database', 'localhost', 'user_db', 'password');

my $dbh = DBI->connect( "dbi:mysql:DBI:mysql:database=$db_name;host=$host", $user, $pass, {RaiseError => 1, AutoCommit => 1});

# Ниже строки для работы с БД в кодировке cp1251
$dbh->do("SET character_set_client = cp1251");
$dbh->do("SET character_set_server = cp1251");
$dbh->do("SET character_set_database = cp1251");
$dbh->do("SET character_set_connection = cp1251");
$dbh->do("SET character_set_results = cp1251");
$dbh->do("SET NAMES cp1251");

# Как вариант
my $value = 'какое-то значение';
my $last_id = $dbh->selectrow_arrayref("SELECT `id` FROM `table` WHERE `name` = ".$dbh->quote($value));
$last_id = $last_id->[0] if $last_id and $last_id->[0];


Если почитать доку (драйвера DBD::mysql), то можно к примеру узнать последний id, который указался при команде INSERT INTO
Код

$dbh->{'mysql_insertid'};



В общем RTFM!!! Не будьте лентяями!!!


--------------------
PM   Вверх
Nab
Дата 13.7.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чуствую проблема в другом...
Раньше у него работало без use strict, 
сейчас оно гдето включаеться...


allexeym,  поищите эту строку и попробуйте закоментировать, если раньше скрипт работал, то все должно работать снова...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
allexeym
Дата 13.7.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>DBI изучите!

я б с радостью
если б понимал в перле хоть что-то
а так очень сложно понять что к чему


>РАЗНЫЕ МОДУЛИ

я правильно понял, что у меня раньше испоьзовался модуль Mysql, теперь я начал использовать модуль DBI
и мне нужно полностью переделать этот скрипт?

Добавлено через 2 минуты и 58 секунд
>allexeym,  поищите эту строку и попробуйте закоментировать, если раньше скрипт работал, то все должно работать снова...

какую? use strict?

нет такого


PM MAIL   Вверх
nitr
Дата 13.7.2007, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



allexeym, да - при использовании DBI переписывать скрипт!
Я не в курсе того, что вы не знаете перл.

Если Nab прав, то - тоже переписывать, но не весь, а исправлять - дайте исправить скрипт человеку, знающему Perl smile


--------------------
PM   Вверх
allexeym
Дата 13.7.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а почему он перестал работать? 

что могло измениться?
версия перл?
или Mysql?
PM MAIL   Вверх
allexeym
Дата 16.7.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



есть вопросик

как адаптировать
вот такое
Код


@last_shop_id_arr=$sth->fetchcol(0);
@last_shop_name_arr=$sth->fetchcol(1);
@last_shop_subdir_arr=$sth->fetchcol(2);
@last_shop_divid_arr=$sth->fetchcol(3);
@last_shop_time_arr=$sth->fetchcol(4);


под модуль  DBI?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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