【 windows7 64bit + MySQL5.5 + ActivePerl 5.16.3 】
コマンドプロンプトで直接、
c:\>ppm install DBI
No missing packages to install
というメッセージがでます、これは「もうインストールされてるよー」という意味だと思いますが、プログラムを実行しても、
Software error:
DBD::MySQL initialisation failed: Can't locate object method "driver" via package "DBD::MySQL" at C:/usr/local/lib/DBI.pm line 808.
Perhaps the capitalisation of DBD 'MySQL' isn't right. at C:/Apache2.2/htdocs/00001/shinki_data_sakusei.pl line 33.
というエラーがでます。
======================================
# 初期設定部分
use strict;
use warnings;
# エラーをブラウザに表示
use CGI::Carp qw(fatalsToBrowser);
use utf8;
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';
binmode STDERR, ':encoding(UTF-8)';
use Encode;
use DBI;
# プログラム開始
# ユーザ名とパスワード
my $dbname = 'login_data';
my $dbhost = 'localhost';
my $user = 'root';
my $pass = 'root';
#データベースへ接続
my $db = DBI->connect( "DBI:MySQL:dbname = $dbname;host = $dbhost", $user, $pass );
if ( ! $db ){
print "エラー: $db->err $db->errstr\n";
}
# 命令
my $sth = $db->prepare( "SELECT * FROM login" );
# 実行
$sth->execute;
# 出力
while( my @row = $sth->fetchrow_array ){
print "@row\n";
}
#データベースから切断
$db->disconnect;
__END__
No.1ベストアンサー
- 回答日時:
エラーメッセージの
> Perhaps the capitalisation of DBD 'MySQL' isn't right. at C:/Apache2.2/htdocs/00001/shinki_data_sakusei.pl line 33.
は「たぶん DBD の 'MySQL' の大文字・小文字が間違ってるんじゃないかなぁ」と読めます。おそらく
> my $db = DBI->connect( "DBI:MySQL:dbname = $dbname;host = $dbhost", $user, $pass );
の MySQL が問題ではないかと。
ありがとうございます、小文字大文字でした。全くお恥ずかしいです。
============================
# 初期設定部分
use strict;
use warnings;
# エラーをブラウザに表示
use CGI::Carp qw(fatalsToBrowser);
use utf8;
binmode STDIN, ':encoding(UTF-8)';
binmode STDOUT, ':encoding(UTF-8)';
binmode STDERR, ':encoding(UTF-8)';
use Encode;
use DBI;
# プログラム開始
print "Content-Type: text/html; charset=UTF-8\n\n";
# ユーザ名とパスワード
my $dbname = 'login_data';
my $dbhost = 'localhost';
my $user = 'root';
my $pass = 'root';
#データベースへ接続
my $db = DBI->connect( "DBI:mysql:database=$dbname;host=$dbhost", $user, $pass );
# my $db = DBI->connect('DBI:mysql:localhost', $user, $pass,);
if ( ! $db ){
print "エラー: $db->err $db->errstr\n";
}
# 命令
my $sth = $db->prepare( "SELECT * FROM login" );
# 実行
$sth->execute;
# 出力
while( my @row = $sth->fetchrow_array ){
print "@row\n";
}
#データベースから切断
$db->disconnect;
__END__
No.2
- 回答日時:
参考までに、パッケージがインストールされていない場合のエラーメッセージは以下のとおりとなります。
Can't locate hogehoge.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .)
今回はきちんとインストールされているため、#1の回答のようにエラーが返ります。
問題は、
my $db = DBI->connect( "DBI:mysql:database=$dbname;host=$dbhost", $user, $pass );
部分の mysql の小文字大文字部分でした。
すごく恥ずかしいです。
うまく、いきました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP php エラー 2 2022/10/23 16:43
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- YouTube youtubeからの著作権メールについて 2 2023/02/14 16:12
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
モジュールとクラスの違いって...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
現在アクティブなフォーム名を...
-
VBAでoutlook365が起動しません。
-
VBSがコンパイルエラーになりま...
-
VBAで旧字体を異字体に一括で変...
-
VBAのバージョン管理
-
モジュールとは何ですか
-
NET::POP3の代用できるスクリプト
-
perlスクリプトのブラウザURLか...
-
モジュールからフォームのボタ...
-
【vba】フォームに書いてあ...
-
Pythonプログラミングでエラー
-
クラスモジュールについて
-
グラフのX,Y座標を取得したい
-
Excel2003でSheets1をExport
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
Perlで画像のサイズ取得する方法
-
"use CGI::Session"でエラーが...
-
DBIが入っているはずですが、、、
-
laravel 本番環境でメールが送...
-
Unicode::Japanese を継承できない
-
WWW::Mechanizeがプロシキ経由...
-
警告を消したい
-
PerlでHashのキーを制限したい
-
Chart::Gnuplotの使い方
-
htmlフォームから受け取ったフ...
-
perlで指定か所のurlを取り出し...
-
リンク先の画像サイズの取得
-
エラーでハマっている為、use A...
-
データベースに接続したい
-
perlからDBIを使用したpostgres...
-
(Perl CPAN) DBDがはいらない
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
ユーザー定義関数に#NAME?が返...
おすすめ情報