2015-01-12 2 views
-2

Я не кодирую в mysql или perl, и я пишу программу, которая анализирует и xml-файл и вставляет данные в базу данных mysql в C++. Я нашел скрипт, чтобы сделать это, что я называю из моего кода C++, но получаю эту ошибку:Вставка данных в базу данных mysql с использованием perl

Unknown column 'subject' in 'field list' at ./xml_to_mysql.pl line 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); 
+5

В этом вопросе я не могу найти код на C++. –

+0

Я только запускаю этот скрипт в коде C++. Ошибка из сценария –

+2

Если проблема не в коде C++, и код C++ не нужен, чтобы показать нам проблему, я не вижу причины для тега C++. Пожалуйста, удалите его, если я не ошибаюсь. –

ответ

2

ошибка кажется довольно ясно. Вы генерируете инструкцию SQL INSERT, которая пытается вставить данные в столбец «subject». Но таблица, в которую вы вставляете данные, не имеет столбца под названием «субъект».

Учитывая, что вы генерируете SQL из документа XML, решение будет один из этих двух вариантов:

  1. Добавьте столбец «субъект» в таблице
  2. Пропустить обработки элемента XML которое добавляет эти данные в SQL.

Какой из них Вы выбираете, полностью зависит от того, как ваша программа должна работать. Мы не можем помочь.

+0

Произошла ошибка в таблице. Может кто-нибудь, пожалуйста, помогите мне с тем, как получить инструкцию «create table» из неизвестного xml-файла. Любая помощь будет оценена –

Смежные вопросы