使用perl将数据插入到mysql数据库中

时间:2015-01-12 11:31:09

标签: mysql perl

我不用mysql或perl编写代码,我正在编写一个解析和xml文件的程序,并将数据插入到C ++的mysql数据库中。我找到了一个脚本来执行此操作,我从我的C ++代码调用,但得到此错误:

  

./xml_to_mysql.pl第107行“字段列表”中的未知列'主题'

以下是执行插入的脚本代码:

#@_IMPORT_DOCUMENT_
# Open file for reading

my $xp = XML::XPath->new (filename => $file_name);
my $row_list = $xp->find ("//row");

print "Number of records: " . $row_list->size () . "\n";
foreach my $row ($row_list->get_nodelist ())
{
     my @name; #array of column names
     my @val; #array of column names
     my $col_list = $row->find ("*");
     foreach my $col ($col_list->get_nodelist ())
     {
         push (@name, $col->getName ());
         push (@val, $col->string_value ());
     }
     #construct INSERT statement, then execute it 
     my $stmt = "INSERT INTO $tbl_name ("
                . join (",", @name)
                . ") VALUES ("
                . join (",", ("?") x scalar (@val))
                . ")";
     $dbh->do ($stmt, undef, @val);
}

第107行是包含以下行的行:

$dbh->do ($stmt, undef, @val);

1 个答案:

答案 0 :(得分:2)

这个错误对我来说非常清楚。您正在生成一个SQL INSERT语句,该语句尝试将数据插入名为' subject'的列中。但是,您要插入数据的表格中没有名为' subject'。

的列。

鉴于您从XML文档生成SQL,解决方案将是以下两个选项之一:

  1. 添加一个'主题'列到表
  2. 跳过处理将此数据添加到SQL
  3. 的XML元素

    您选择哪一项完全取决于您的计划应该如何运作。我们无法提供任何帮助。