我不用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);
答案 0 :(得分:2)
这个错误对我来说非常清楚。您正在生成一个SQL INSERT语句,该语句尝试将数据插入名为' subject'的列中。但是,您要插入数据的表格中没有名为' subject'。
的列。鉴于您从XML文档生成SQL,解决方案将是以下两个选项之一:
您选择哪一项完全取决于您的计划应该如何运作。我们无法提供任何帮助。