「windows7 64bit に ActivePerl をいれています」
以下のプログラムを書いて実行したところ、エラーメッセージがでてきました。
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.
これはつまり、DBD::MySQL がないよ!という意味であると思うのですが、ppmを起動してDBDにあたるモジュールをインストールして再実行してもまだ同じエラーがでます。どうしてもwindows7上で作らなければならないので、困っています。どこか参考になるサイトはないでしょうか?
=========================================
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 $user = 'root';
my $pass = 'root';
#データベースへ接続
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.1ベストアンサー
- 回答日時:
ppmで DBD::mysql(DBD-mysql)はインストール済なんですね。
そうなのでしたら、おそらく
> my $db = DBI->connect('DBI:mysql:localhost', $user, $pass,);
のように、mysqlを小文字で指定していないのが原因でしょう。
Windowsではファイル名の大文字小文字は区別されませんが、
Perlとしてはモジュール名は大文字小文字が区別されます。
この回答への補足
# ユーザ名とパスワード
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 );
===================================================================
で実行してみましたが、今度はなにか、
Internal Server Error
でした(T_T) なんとかいろいろ頑張ってみます
No.2
- 回答日時:
これがプログラムの全てならば、
print "@row\n"; をする前に、
print "Content-type: text/plain\n\n";
がないというのがInternal Server Errorの原因をまず疑いたいところです。
Content-typeの設定を#プログラム開始 の直後 ~ #データベースへ接続 の手前 くらいに欲しいです。
はい、ご指摘のとおり、
print "Content-Type: text/html; charset=UTF-8\n\n";
を入れていなかったためのエラーでした。とても恥ずかしいです(T_T)
お探しの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
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
Excel VBAでリンク切れをチェッ...
-
Excelで時刻になったら知らせて...
-
perl DBD::Pg インストールでエ...
-
VBSで自動ログインについて
-
VBAで別モジュールへの変数の受...
-
モジュールの最大数はいくつな...
-
VBAProjectのモジュ...
-
エクセルVBAでシートモジュール...
-
SWI-Prologでのエラーに関して
-
'Range'メソッドは失敗しました
-
Form間の値の渡し方
-
フリーの画像認証フォーム
-
VBA モジュールで共通に使う変...
-
Excel VBA 定義されたプロージ...
-
vba userFormのSubを標準モジュ...
-
ActivePerl付属のPPMでモジュー...
-
Perlで環境変数を設定するには
-
Perlスクリプトで文字化けして...
-
関数の引数にクラスを使いたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
LCD ディスプレイを Raspberry ...
-
laravel 本番環境でメールが送...
-
Perlで画像のサイズ取得する方法
-
CGI::Carpを使っているのにInte...
-
MySQLとの接続でfetchrow_array...
-
(Perl CPAN) DBDがはいらない
-
フォームメール@PerlとActiveP...
-
エラーでハマっている為、use A...
-
htmlフォームから受け取ったフ...
-
failed: Can't connect to loca...
-
perlからDBIを使用したpostgres...
-
警告を消したい
-
Chart::Gnuplotの使い方
-
Unicode::Japanese を継承できない
-
"use CGI::Session"でエラーが...
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
「デバイスは PRN を初期化でき...
-
VBAで別モジュールへの変数の受...
おすすめ情報