Forum Webscript.Ru

Программирование => Perl => Тема начата: Лысяня от 26 Декабря 2003, 16:46:43

Название: Perl и My SQL..
Отправлено: Лысяня от 26 Декабря 2003, 16:46:43
Не хочет работать и все ...
Не могли бы ктонибуть скинуть код для обращения к базе данных. Все установлено локально.
ActivePerl-5.8.0.806-MSWin32-x86.msi
apache_2.0.47-win32-x86-no_ssl.msi

Выдает 500 ошибку..::insane:
Название: Perl и My SQL..
Отправлено: Phoinix от 26 Декабря 2003, 17:01:12
use DBI;
$name_base_mysql = "demo";
$user_base_mysql = "demo";
$pass_base_mysql = "demo";
$host_base_mysql = "localhost";
$port_base_mysql = "3306";

$dbh = "DBI:mysql:$name_base_mysql:$host_base_mysql:$port_base_mysql";
$dbh = DBI->connect($dbh, $user_base_mysql, $pass_base_mysql);
$sql = "SELECT value1, value1 FROM my_table WHERE value1 = \'1\' ";
$sth = $dbh -> prepare($sql);
$sth -> execute();
while ($tmp = $sth -> fetchrow_arrayref()) {
$var0 = $tmp -> [0];
$var1 = $tmp -> [1];}
$sth -> finish();
$dbh -> disconnect();
  print "Content-type: text/html; charset=windows-1251\\n\\n";
  print qq "$var0 - $var1";
  exit;
Название: Perl и My SQL..
Отправлено: Alone от 26 Декабря 2003, 18:35:41
как вариант
use CGI::Carp qw (fatalsToBrowser);
Название: Perl и My SQL..
Отправлено: Лысяня от 26 Декабря 2003, 19:52:47
#!perl
use DBI;
$name_base_mysql = "test";
$user_base_mysql = "root";
$pass_base_mysql = "password";
$host_base_mysql = "localhost";
$port_base_mysql = "3306";

$dbh = "DBI:mysql:$name_base_mysql:$host_base_mysql:$port_base_mysql";
$dbh = DBI->connect($dbh, $user_base_mysql, $pass_base_mysql);
$sql = "SELECT name, name FROM tabl WHERE name = \'tri\' ";
$sth = $dbh -> prepare($sql);
$sth -> execute();
while ($tmp = $sth -> fetchrow_arrayref()) {
$var0 = $tmp ->
$var1 = $tmp -> [1];}
$sth -> finish();
$dbh -> disconnect();
  print "Content-type: text/html; charset=windows-1251\\n\\n";
  print qq "$var0 - $var1";
  exit;

База test
таблица tabl
---------------------------------
name   |    name2
---------------------------------
raz       |    dva
tri        |    chetire
pyat     |    shest
---------------------------------

 И опять 500, что не так?
Название: Perl и My SQL..
Отправлено: NeoNox от 26 Декабря 2003, 20:19:57
#!/usr/bin/perl - полный путь к Perl
Название: Perl и My SQL..
Отправлено: Лысяня от 26 Декабря 2003, 20:32:48
У меня на локальном компьютере перл по адресу D:\\server\\Perl
с #!perl скрипты без MySQL работают нормально
Название: Perl и My SQL..
Отправлено: NeoNox от 26 Декабря 2003, 20:35:14
поставь use CGI::Carp qw (fatalsToBrowser); во вторую строчку.
Название: Perl и My SQL..
Отправлено: Phoinix от 26 Декабря 2003, 20:41:59
Лысяня
А как у тебя с модулем DBI обстоят дела?
А самое главное как обстоят дела с модулем DBD::mysql?

Нехорошее у меня чувство, что про него то ты и забыл, т.к. установку DBI недавно уже проходили...

А вообще неплохо было бы логи ошибок посмотреть, либо то что выведет скрипт в браузер при использовании
use CGI::Carp qw (fatalsToBrowser);
Название: Perl и My SQL..
Отправлено: Лысяня от 26 Декабря 2003, 21:09:46
Ввел такую строчку, вот что получилось:
Software error:
install_driver(mysql) failed: Can\'t locate DBD/mysql.pm in @INC (@INC contains: D:/server/Perl/lib D:/server/Perl/site/lib .) at (eval 1) line 3.
Perhaps the DBD::mysql perl module hasn\'t been fully installed,
or perhaps the capitalisation of \'mysql\' isn\'t right.
Available drivers: ExampleP, Proxy, Sponge.
 at D:/server/cgi-bin/index.pl line 11

DBI поставилось нормально (вроде)
Название: Perl и My SQL..
Отправлено: NeoNox от 26 Декабря 2003, 21:26:37
DBD::mysql поставь, без этого ничего работать не будет.
Название: Perl и My SQL..
Отправлено: Лысяня от 26 Декабря 2003, 21:51:09
Поставил, все отлично!!!

АААгромное спасибо.