電子書籍の厳選無料作品が豊富!

Perl初心者です。レンタールサーバでmysqlからデータを取得して表示するプログラムを作りたいのですインターネットで捜したのですがよく分かりませんでした。申し訳ありませんが駄目出しでも結構ですので直すポイントになるようなアドバイス、お願い致します。

#!/usr/bin/perl

#変数宣言

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

use DBI;
$ds = 'DBI:mysql:XXXXXXXXXXX:localhost';
$user = 'XXXXXXXXXX';
$pass = 'XXXXXXXXXX';

print "test<br>\n";

$db = DBI->connect($ds, $user, $pass) || die "Got error $DBI::errstr when connecting to $ds\n";

print "test<br>\n";

#$sth = $db->prepare("SELECT mei FROM name");
#$sth->execute;

# バス経路票の中身を表示したかったたのですが出来ませんでした。
$sth= $db->prepare(qq(SELECT * FROM 'バス経路票'));
$sth->execute;
while(@row = $sth->fetchrow_array) {
print qw($row[0]\t$row[1]\t$row[2]\n);
}

# 経路票の中身を表示したかったたのですが出来ませんでした。
$sth = $db->prepare(qq(SELECT * FROM '経路票'));
$sth->execute;
while(@row = $sth->fetchrow_array) {
print qw($row[0]\t$row[1]\t$row[2]\n);
}

# 駅バス停関係票の中身を表示したかったたのですが出来ませんでした。
$sth = $db->prepare(qq(SELECT * FROM '駅バス停関係票'));
$sth->execute;
while(@row = $sth->fetchrow_array) {
print qw($row[0]\t$row[1]\t$row[2]\n);
}

# バス経路票の中身を表示したかったたのですが出来ませんでした。
print "@basskeiro<br>\n";

# 経路票の中身を表示したかったたのですが出来ませんでした。
print "@keiro<br>\n";

# 駅バス停関係票の中身を表示したかったたのですが出来ませんでした。
print "@bassteikeiro<br>\n";

print "test<br>\n";

$rc = $sth->finish;
$rc = $db->disconnect;

exit;

A 回答 (3件)

No.1です。



MySQLの文字コードの確認を行ってください。
また、ソースコードの文字コードはどのようになっているでしょうか?

また、テーブル名などを英数字にすることは、不可能なのでしょうか?
テーブル名を日本語にしたことがないのですが、
いらぬところで、はまったりしそうなので。。。

ためしに、英数字のテーブルでスクリプトを試してみては
いかがでしょうか?

ソースコード的には、動かないものではなさそうですので。

この回答への補足

返信遅れて申し訳ありません。確認いたします。

補足日時:2011/03/06 13:07
    • good
    • 0
この回答へのお礼

解決しました。ありがとうございます。

お礼日時:2011/03/13 09:59

perlにモジュールDBIがインストールされていないのでは。


他にも、DBD::mysql?の様なモジュールもインストールされていないのでは。

この回答への補足

返信遅れて申し訳ありません。確認いたします。

補足日時:2011/03/06 13:06
    • good
    • 0
この回答へのお礼

解決しました。ありがとうございます。

お礼日時:2011/03/13 10:26

気になった点を上げさせていただきます。


ご参考になれば幸いです。

1.テーブル名が日本語ですが、MySQLで使用する場合は、
  バッククォート「`」で囲むのでは?
  
2.executeの文に、エラー表示を付けた方がいいと思います。
  execute || print $sth->errstr();
  #これで、CGI経由でもSQLのエラーが取得できます。

この回答への補足

コメント、ありがとうございます。
修正したら以下が表示されました。

test
test
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''`ƒoƒXŒo˜H•[`' at line 1Invalid utf8 character string: 'Œo˜H•['Invalid utf8 character string: '‰wƒoƒX’âŠÖŒW•['


test

インターネットでも調べたのですが分かりませんでした。何だろ???

補足日時:2011/02/14 21:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!