2011-09-19 2 views
1

이것이 모두 바보 같은 질문 일지 모르지만 어떻게해야할지 모르겠군요. 내가 perl을 사용하여 로컬 데이터베이스에 연결하려고합니다.DBD :: mysql :: st 실행에 실패했습니다 : 테이블 ''이 존재하지 않습니다.

$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"; 
} 

나는이 조각 도움이 내가 올바른 방법으로 내 질문에 넣어 가지고 희망 : 나는 명령을 실행하려고하면 나는 639이 같은 것입니다 오류

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

내 선 아래 얻을. 더 많은 정보를 제공해야한다면 지금 알려주십시오. 어떤 도움이라도 대단히 감사합니다.

+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

명령 줄에서 작동합니까?

> mysql -u username -ppassword 

mysql> select * from RegenMedline.user_tables 
+0

글쎄, 내 데이터베이스가 비어 있고 명령으로 제로 결과가 나온다. 그래서, 나는 그것이 효과가 있다고 생각합니다. 이 코드를 사용하여 XML 파일을 구문 분석하고 데이터베이스를 채우며 동시에 작동합니다. 내 데이터베이스에는 user_tables이 없습니다. 테이블을 만들었고 나중에 코드에서 사용했습니다. 사실, 나는 오픈 소스 인 다른 사이트에서이 코드를 얻었다. 나는 당신의 질문에 대답했기를 바랍니다. – smandape

+4

@sma "내 데이터베이스에 user_tables이 없습니다"라는 오류 메시지와 "Table 'RegenMedline.user_tables'이 (가) 존재하지 않습니다. – TLP

+0

맞다면 프로그램에 데이터베이스를 구축하고 있습니다 : 프로그램을 시작할 때 테이블이없는 빈 데이터베이스가 있습니다 (맞습니까?). 프로그램에'CREATE TABLE user_tables' 같은 문장이 있습니까? –

관련 문제