2011-09-19 12 views
1

これはあなたのために愚かな質問かもしれませんが、私は何をすべきかわかりません。私はperlを使ってローカルデータベースに接続しようとしています。私は、コマンドを実行しようとすると、私はエラーの下に取得DBD :: mysql :: st実行に失敗しました:テーブル ''が存在しません

DBD::mysql::st execute failed: Table 'RegenMedline.user_tables' doesn't exist at Medlineparser.pl line 639. 

マイライン639は、このようなものです:

$main::dbh = DBI->connect("dbi:mysql:databasename", 
         $main::user="username", 
         $main::password="password", 
         {PrintError => 1, 
         RaiseError => 1, 
         AutoCommit => 1}) 
         or die "Can't connect to database: $DBI:errstr\n"; 

my $sth = $main::dbh->prepare(" 
       SELECT table_name 
       FROM user_tables"); 

$sth->execute(); 

while (my ($table_name) = $sth->fetchrow_array()){ 
    print "table_name = $table_name\n"; 
} 

私はこのスニペットが助け、私は正しい方法で私の質問を入れている願っています。より多くの情報を提供する必要がある場合は、私に今すぐ連絡してください。どんな助けでも大歓迎です。

+0

「SELECT table_name FROM RegenMedline.samples'」のようなことをしている間に、MySQLが 'RegenMedline.user_tables'を見つけられないのは奇妙です。 –

+0

本当に残念です。私はコードを編集しました。私はコードを演奏していたので、それをuser_tablesに編集するのを忘れてしまった。それを指摘していただきありがとうございます。 – smandape

+1

これはあなたの問題ではありませんが、 '$ table_name'はスカラーではなくリスト参照です。あなたは 'print 'のようなものを言いたいと思うでしょう。table_name = $ table_name - > [0] \ n" ' – mob

答えて

1

コマンドラインから機能しますか?

+0

本当に、私のデータベースは空です。だから、私はそれが動作すると思います。私は、このコードを使用してXMLファイルを解析し、同時に作業するデータベースを作成しています。私のデータベースにuser_tablesはありません。私はテーブルを作成し、コードの後半でそれらを使用しました。実際には、オープンソースの別のサイトからこのコードを入手しました。あなたの質問にお答えしたいと思います。 – smandape

+4

@sma私はあなたのステートメント "私のデータベースにuser_tablesがありません"とエラー "テーブル 'RegenMedline.user_tables'が存在しません"の類似点を感じます。 – TLP

+0

私はそれが正しいとすれば、あなたのプログラムでデータベースを構築している:プログラムを起動すると、テーブルのない空のデータベースがある(右?)。プログラムに 'CREATE TABLE user_tables'のようなステートメントがありますか? –