Я работаю над фрагментом кода, который записывает данные из 4 разных блоков .each
в 4 разные строки MySQL в таблице.
Редактировать : я должен отметить, что эти четыре блока вложены в один цикл. Я понял, что он помещает каждый db.query поверх предыдущего, потому что он генерирует новый ID для каждого из них. Итак, код работает ... просто не так, как задумано. По сути, одна строка в таблице должна содержать столбец и соответствующие данные для a, b, c и d. Как я могу использовать несколько таких блоков и убедиться, что они все записывают в одну строку?
Код выглядит примерно так ...
1.upto(5) do |num|
a.each do |a|
puts a
db.query("INSERT INTO Table(Column1) VALUES('#{a}')")
end
b.each do |b|
puts b
db.query("INSERT INTO Table(Column2) VALUES('#{b}')")
end
c.each do |c|
puts c
db.query("INSERT INTO Table(Column3) VALUES('#{c}')")
end
d.each do |d|
puts d
db.query("INSERT INTO Table(Column4) VALUES('#{d}')")
end
end
Очевидно, что это всего лишь пример, но блоки на самом деле мало чем отличаются от этого.
Несколько вещей.
Во-первых, да, мне нужно иметь эти четыре блока с .each
, потому что я делаю с ними разные вещи, которые я не могу просто сделать все в одном блоке.
Во-вторых, я знаю, что каждый из этих блоков является «правильным», потому что, если я закомментирую все из них, кроме одного, будет записывать, выполняет этот один блок правильно - запись в базу данных и т.д. все блоков без комментариев , как они должны быть, он только записывает блок 'a' в базу данных и остальные блоки ничего не пишите, оставляя строки NULL.
Команды 'put' выводятся совершенно нормально, как и ожидалось - каждый блок, выполняющийся после предыдущего, есть проблема, когда он пытается выполнить метод query ().
Есть идеи?