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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с работой MySQL на Denwer 
:(
    Опции темы
PerlWebMaster
Дата 5.10.2011, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А вот такой  код по синтаксису вроде все правильно

код модуля LogConnect.pm
Код


package LogConnect;
use DBI;
use strict;
sub connect {
    my ($log_dbname, $log_dbhost);
    my $log_dsn = "DBI:mysql:database=$log_dbname;host=$log_dbhost";
    my $log_dbh = DBI->connect($log_dsn, "root", "");
if (!defined($log_dbh)) {
  print "\nerror: Проблемка с подключением к
          базе данных MySql:\n";
          print DBI ->errstr;
          print "-" x 25 . "\n";
          return;
  }
  return $log_dbh;
  }
  1;



код скрипта этого модуля он должен заносить в базу значения 
Код

#!/usr/bin/perl -w
# vislog.cgi
use strict;
use POSIX;
use Socket;
use LogConnect;
my $dbh = LogConnect->connect;
my $ip = $ENV{'REMOTE_ADDR'};
my $browser = $ENV{'HTTP_USER_AGENT'};
my $referer = $ENV{'HTTP_REFERER'};
my $here = $ENV{'REQUEST_URI'};
my @digits = split(/\./, $ip);
my $address = pack("C4", @digits);
my $host = gethostaddr($address, AF_INET);
my $time = strtime("%Y-%m-%d %H:%M:%S",gmtime);
my $query = qq(insert info access_log values
              ('$ip', '$host', '$browser', '$referer',
              '$here', '$time'));
my $sth = $dbh ->prepare($query);
$sth -> execute;
$dbh -> disconnect;


но у меня вот такая  ошибка 
создал базу visitors в MySQL 
ОШИБКИ
Цитата

Use of uninitialized value $log_dbname in concatenation (.) or string at LogConnect.pm line 6.
Use of uninitialized value $log_dbhost in concatenation (.) or string at LogConnect.pm line 6.
DBI connect('database=;host=','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at LogConnect.pm line 7
Use of uninitialized value $log_dbhost in concatenation (.) or string at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 12.
Use of uninitialized value $log_dbhost in concatenation (.) or string at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 14.

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


сплю...
**


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

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



$log_dbname, $log_dbhost пустые.
PM MAIL   Вверх
infarch
Дата 5.10.2011, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А пароль точно пустой?

Это сообщение отредактировал(а) infarch - 5.10.2011, 11:31
PM MAIL   Вверх
PerlWebMaster
Дата 5.10.2011, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(alezzz @ 5.10.2011,  09:44)
$log_dbname, $log_dbhost пустые.

блин код из книги а как их правильно инициализировать если подключения происходит на Denwer 
пробовал так  не получается
Цитата

package LogConnect;
use DBI;
use strict;
sub connect {
    my $log_dbname = 'visitors';  
    my $log_dbhost = '127.0.0.1';
    my $log_dsn = "DBI:mysql:database=$log_dbname;host=$log_dbhost";
    my $log_dbh = DBI->connect($log_dsn, "root", "1234");
if (!defined($log_dbh)) {
  print "\nerror: Проблемка с подключением к
          базе данных MySql:\n";
          print DBI ->errstr;
          print "-" x 25 . "\n";
          return;
  }
  return $log_dbh;
  }
  1;


Цитата

DBI connect('database=visitors;host=127.0.0.1','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at LogConnect.pm line 8
Use of uninitialized value $ip in split at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 12.
Undefined subroutine &main::gethostaddr called at C:\WebServers\home\site.ru\cgi-bin\vislog.cgi line 14.

error: ��������� � ������������ �
          ���� ������ MySql:
Access denied for user 'root'@'localhost' (using password: YES)-------------------------

Добавлено @ 19:55
Цитата(infarch @ 5.10.2011,  11:30)
А пароль точно пустой?

пробовал и с пароль создавать и без пароля тоже самое

Это сообщение отредактировал(а) PerlWebMaster - 5.10.2011, 20:16
PM MAIL   Вверх
infarch
Дата 6.10.2011, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот функция котороя я пользуюсь. Работает везде, главное правильно передать данные:

Код


sub get_dbh_mysql {
    my ($database, $user, $pass, $host) = @_;
    $host = $host || 'localhost';
    my $dbh = DBI->connect("dbi:mysql:$database:host=$host", $user, $pass) or 
        throw ISoft::Exception::DB(message=>"Connection Error: $DBI::errstr\n");
    $dbh->{'mysql_enable_utf8'} = 1;
    $dbh->do("set names utf8");
    $dbh->{AutoCommit} = 0;
    return $dbh;
}


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


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

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


 




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


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

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