2014-10-06 92 views
-1

我已經成功從ActiveState版本5.18.2.1802安裝了最新版本的Perl。我在Windows 8環境中使用後端的Mysql數據庫。寫下下面的代碼無法在@INC中找到DBD/mysql.pm

#!/usr/local/bin/perl 
use CGI; 
use DBI; 

    $cgiObj = CGI->new; 
    print $cgiObj->header('text/html'); 

    $params = 'DBI:mysql:world:localhost'; 
    $user = 'root'; 
    $pass = 'XXXXXX!'; 

    $conn = DBI->connect($params, $user, $pass); 
    $sql='select * from city'; 
    $query =$conn->prepare($sql); 
    $query->execute; 

    while(@row=$query->fetchrow_array) 
    { 
     print "ID: $row[0], Name: $row[1]<br>\n"; 
    } 

請一些人給我指導做好

+3

您是否安裝了'DBI'和相關的mysql驅動程序? – TLP 2014-10-06 00:15:54

+3

您停止過早閱讀錯誤消息。它繼續*您可能需要安裝DBD :: mysql模塊*。你有什麼理由相信這個問題是另一回事嗎? – ikegami 2014-10-06 00:19:24

回答

2

想必你還沒有安裝DBD :: mysql的。但是,假設您錯誤地輸入了錯誤消息(這將是「無法找到DBD/mysql.pm」,而不是「無法找到DBD/Mysql.pm」)。

您也沒有將DSN設置爲記錄;它應該是在這些形式之一:

$dsn = "DBI:mysql:$database"; 
$dsn = "DBI:mysql:database=$database;host=$hostname"; 
$dsn = "DBI:mysql:database=$database;host=$hostname;port=$port"; 

而且,你能救自己很多麻煩,將來如果你總是說:

use 5.018; 
use warnings; 
在腳本

妥善聲明變量。 (可選擇使用較低的最低版本號,但如果指定的版本低於5.012,則還需要use strict;,因爲這不會爲您完成。)

相關問題