我已经创建了数据库头作为哈希的键,并尝试将哈希值(数据类型:数组)插入到mysql数据库中.但它给出了语法错误.以下是代码请建议做什么???
my @keys = keys %hash; #keys used as database headers
my @values=values %hash; #value to be inserted
my $sth=$dbh->prepare("INSERT INTO `$table`(@keys) VALUES (@values)");
$sth->execute() or die "ERROR writing to database: $DBI::errstr $dbh->errstr";
Run Code Online (Sandbox Code Playgroud)
这是哈希(使用Data :: Dumper)
$VAR1 = bless( { '120493acNo' => [ '1' ], 'a120064amount' => [ '133' ], '120310amount' => [ '23' ]}, 'CGI' );
Run Code Online (Sandbox Code Playgroud)
你想要这样的东西:
my $dbh = DBI->connect(..., {RaiseError => 1});
my $sql = 'INSERT INTO ' . $dbh->quote_identifier($table_name) .
' (' . join(',', map { $dbh->quote_identifier($_) } @fields) . ') ' .
'VALUES (' . join(',', map { '?' }) @values) . ')';
$dbh->do($sql, undef, @values);
Run Code Online (Sandbox Code Playgroud)
那会的
$table_name
和所有标识符@fields
@values
,所以你不必担心他们引述CPAN模块隐藏了易于使用的界面背后的逻辑.
归档时间: |
|
查看次数: |
2507 次 |
最近记录: |