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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> musql 
V
    Опции темы
GShadrin
  Дата 28.7.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.
Использую бесплатный хостинг.

Имя базы: dots8 
Имя пользователя: dots8 
Хост на котором расположен сервер БД: localhost
Пароль: *********

Пытаюсь залезть в базу перлом:
Код

#!/usr/bin/perl
use CGI qw(:standard);
print "Content-type: text/plain\n\n";
use DBI;

open(DATA, "data.txt") || die;
$hostname=<DATA>;
$database=<DATA>;
$user=<DATA>;
$password=<DATA>;
close(DATA);
$dbh = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or die "Error connecting to database";
print "123456";
...
...
$rc = $sth->finish;    # закрываем
$rc = $dbh->disconnect;  # соединение

до 123456 дело не доходит
меняю местами $dbh = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or die "Error connecting to database"; и print "123456"; - печатает "123456".

data.txt:
localhost
dots8
dots8
*********

Почему?

Добавлено через 11 минут и 6 секунд
опечатался не mu конечно, а mysql
модуль DBI на хосте есть проверял
PM MAIL   Вверх
Pfailed
Дата 28.7.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GShadrin @  28.7.2009,  19:09 Найти цитируемый пост)
$dbh = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or die "Error connecting to database";

Что-то невидать такого формата записи первого аргумента метода connect в perldoc'e.

Я так коннекчусь:
Код

DBI->connect("DBI:mysql:dbname=$db_name; host=$db_host", $db_user, $db_pass);



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


Шустрый
*


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

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



мне кажется dbname=$db_name эквивалентно $db_name
возвращаемый результат всегда $db_name
Попробывал - не помоголо
PM MAIL   Вверх
Pfailed
Дата 28.7.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GShadrin @  28.7.2009,  19:32 Найти цитируемый пост)
Попробывал - не помоголо

Ну тогда делайте так

Код

$dbh = DBI->connect("DBI:mysql:$database:$hostname", $user, $password) or do{ print $DBI::errstr; exit };

И смотрите какую ошибку вывело.



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


Шустрый
*


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

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



да спасибо
пишет Unknown MySQL server host 'localhost' (1)
знаю где копать smile
PM MAIL   Вверх
chorny
Дата 29.7.2009, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Лучше всего поставить в начале программы
Код

BEGIN {
 use CGI::Carp qw(fatalsToBrowser); 
}

PM MAIL WWW   Вверх
GShadrin
Дата 29.7.2009, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(chorny @  29.7.2009,  03:18 Найти цитируемый пост)
Лучше всего поставить в начале программы
Выделить всёкод Perl
1:
2:
3:
    
BEGIN {
 use CGI::Carp qw(fatalsToBrowser); 
}


а что это дает и что значит?
PM MAIL   Вверх
GShadrin
  Дата 29.7.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile 
Разобрался.
Все из-за последних двух символов перевода строки
Верно надо было так:
Код

open(DATA, "data.txt") || die;
$hostname=<DATA>;
$database=<DATA>;
$user=<DATA>;
$password=<DATA>;
close(DATA);

$hostname=substr($hostname,0,-2);
$database=substr($database,0,-2);
$user=substr($user,0,-2);
$password=substr($password,0,-2);

PM MAIL   Вверх
ginnie
Дата 29.7.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

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



GShadrin, лучше 

Код

$hostname=substr($hostname,0,-2);
$database=substr($database,0,-2);
$user=substr($user,0,-2);
$password=substr($password,0,-2);


заменить на

Код

s/[\r\n]+// for ($hostname, $database, $user, $password);



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


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

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


 




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


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

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