2015-04-14 47 views
0
  • 的perl版本是5.8.8
  • MySQL的版本是42年5月5日
  • DBI的版本是1.633和DBD :: MySQL的版本是4.022

我在共享託管服務器上。 我有一個perl模塊文件,它工作正常。我可以從perl腳本文件中使用它的subs沒有問題。如果我添加到pm文件,使用DBI導致模塊文件的編譯錯誤

use DBI; 
my $username = "username"; 
my $password = "password"; 
my $dsn = "DBD:mysql:database"; # i changed DBD to DBI as well but no good 

仍然一切工作正常。 ,但只要我添加下面一行到perl模塊文件,Perl腳本文件開始抱怨「編譯失敗中要求」

​​

我試着用搜索引擎,但沒有結果。任何想法?

+0

請修復您的數據源名稱:它應該以'DBI:'開頭。看起來安裝'DBD :: mysql'驅動程序模塊有問題。嘗試在'use DBI'下添加'use DBD :: mysql'並查看給出的錯誤 – Borodin

回答

0

我想創建一個可以被該模塊的潛艇使用的dbi手柄,但是在使用前我得到了錯誤(正如我在問題中提到的那樣)。 可能是模塊的安全特性,我只能在子窗體中使用dbi,

使用DBI;
sub databaseHandle {
my $ username =「username」;
my $ password =「password」;
my $ dsn =「DBI:mysql:database」;
my $ dbh = DBI-> connect($ dsn,$ username,$ password)或者死於$ DBI :: errstr;
return $ dbh}
my $ dbh = databaseHandle();

我不知道具體原因,但這是我如何使用它。 感謝所有的幫助和想法。

-2

數據源必須是「DBI:mysql:database=my_database」,您可以在其中傳遞數據庫的種類和名稱。

發生該錯誤是因爲必須安裝數據庫驅動程序模塊DBD::mysql。詢問您的主機是否安裝了該模塊,或者您是否可以自行安裝。

+0

缺少的驅動程序模塊會導致通常的'無法在@ INC中找到DBD/mysql.pm'。 OP得到'編譯失敗在require',這意味着文件存在,但包含一個錯誤 – Borodin

+0

我在我的問題中提到我有dbd :: mysql版本4.022,所以它在那裏。 – shakAttack

相關問題