2011-02-17 61 views
2

我想在Perl中創建一個數據庫,但它一直試圖要求我使用一個數據庫。 這是我的代碼:如何從Perl腳本創建MySQL數據庫?

my @db_months = qw(JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC); 

foreach my $db_month (@db_months) 
{ 
    ## create db 
    my $db_name = $db_month.$Year; 
    my $dbh = DBI->connect($dns, $user, $password) or die "Unable to connect: $DBI::errstr\n"; 
    my $row = $dbh->do("CREATE DATABASE '".$db_name."' DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;"); 
    $dbh->disconnect(); 
} 

請幫忙。

+3

是什麼`$ dns`包含哪些內容?你會得到什麼錯誤? – Tim 2011-02-17 07:51:38

+1

在這種情況下,'$ dns`的更好的命名是'$ dsn`。 – 2011-02-17 08:05:55

回答

1

它確實有助於瞭解哪些線是給一個錯誤,什麼恰恰是錯誤的。

嘗試使用反引號(`)而不是單引號(')將數據庫名稱...

2

只是簡單地忽略database=$database;

$dbh = DBI->connect("DBI:mysql:host=$host;port=$port", $user, $pw); 
$dbh->do("create database test") or die "Cannot create database \n ";