我試圖從CSV一些數據上傳到MySQL數據庫 - 但它不工作從CSV到MySQL數據庫使用Perl
下面一個是我的代碼
#!/usr/bin/perl -w
use DBI;
use strict;
use TEXT::CSV;
use warnings;
my $driver = "mysql";
my $database = "test";
my $host = "localhost"
my $databaseport = "3306";
my $userid = "root";
my $password = "password";
my $csv = "C:/Perl/scripts/table.csv";
my $dsn = "dbi:mysql:dbname=$databasename;host=$dbhost;port=$dbport;";
open (CSV, "$csv") or die "Couldn't open csvfile: $!";
my $dbh = DBI->connect($dsn, $userid, $password,{ RaiseError => 1})
or die "Could not connect to database! $DBI::errstr";
{
local $/ = undef;
$dbh->do("INSERT INTO student (stud_id,stud_name,dept_id,stud_mark,stud_address)
values (?, ?, ?, ?, ?)", undef, <CSV>);
}
$dbh->disconnect;
close CSV;
您根本沒有使用Text :: CSV。你現在所擁有的將一個完整的CSV行作爲一個字符串,包括作爲MySQL的第一個'?'的換行符。你應該得到一個錯誤,如*期望5個參數,但用1 *調用。 – simbabque
錯誤類似於:在@INC(@INC包含:C:/ Perl/site/lib C:/ Perl/lib。)中找不到TEXT/CSV.pm 位於C:\ Perl \ scripts \ upload。 pl line 4. BEGIN失敗 - 編譯在C:\ Perl \ scripts \ upload.pl第4行中止。 – Benny
這是因爲沒有這樣的模塊。 Perl的模塊名稱區分大小寫。請參閱我的回答以獲取關於此的解釋,等等。 – simbabque