WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Perl+MySQLでのデータベースへの接続方法

0:[投稿] miz [2004/12/02 00:52 ][環境:IE6 Apache]

現在本を見ながらサンプルを実際に作っている初心者です。
PerlからDBに接続しているのですが失敗となってしまい、
困っています。どうかご助言お願いします。
WindowsXp
MySQL : 4.0.16
ActivePerl:5.005

--------------------------------------------------
create table test_tbl(
id int not null,
name varchar(20) not null,
primary key(id)
);
-----------------------------
上記のようなテーブルを作り,

mysql> insert into test_tbl(id,name) values(1,'AAAA');
mysql> insert into test_tbl(id,name) values(2,'BBBB');
mysql> insert into test_tbl(id,name) values(3,'CCCC');

のようにデータを入れました。
---------------------------------------------------
#!C:\\Perl\\bin\\MSWin32-x86-object\\jperl

use DBI;

print "Content-type:text/html\n\n";
print "<html><body>\n";

$db=DBI->connect("DBI:mysql:tsumiki:localhost","ユーザ名","パスワード入力",{RaiseError => 0,PrintError => 1});

if(!$db){
print "接続失敗\n";
exit;
}

$sth = $db->prepare("select id,name from test_tbl");
if(!$sth->execute){
print "SQL失敗\n";
exit;
}

while(@rec=$sth->fetchrow_array){
print "id=" . $rec[0] . "\n";
print "name=" . $rec[1] . "\n";
print "<BR>\n";
}
$sth->finish;
$db->disconnect;

print "</body></html>\n";
------------------------------------------------------
というようなPerlスクリプトをかきました。

ブラウザには「接続失敗」と表示されます。


$db=DBI->connect("DBI:DBDドライバ名:データベース名:ホスト名","ユーザ名","パスワード",{RaiseError => 0,PrintError => 1});

のDBDドライバ名はmysqlだけじゃだめなのでしょうか。



1:[回答] Iwa [URL] [2004/12/02 02:20 ]

「接続失敗」だけだと理由がわからないので、
$DBI::errstr
で原因を表示させるといいですよ。
($DBI::errstrはエラーメッセージの入っている変数(パッケージDBIの変数errstr)です)


ちなみに、
DBI:mysql:〜
はそれで合っています。(もちろんDBD-mysqlがインストールされている必要はありますけど)

あと、余計なお世話だと思いますが今時JPerlを使い始める人はいません。
(JPerlでないとダメな特別な理由がないのであれば、最低でも5.6.1を、最新を使うなら5.8.5(ActivePerlでは5.8.4)をどうぞ)


2:[完了] miz [2004/12/03 00:36 ]

回答ありがとうございます。
最新のをダウンロードし、再度試したところ
うまくいきました。
本当にありがとうございました。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World