Как мне построить транзакцию, используя подготовленные операторы с MySQL2 в Ruby?
Чтобы выполнить подготовленный оператор, я бы использовал:
query = "SELECT * FROM table WHERE id = ?"
statement = $client.prepare(query)
result = statement.execute(1)
result.map do |row|
data.push(row)
end
return data
И я бы использовал это для выполнения транзакции:
class DBConnector
def transaction(&block)
raise ArgumentError, "No block was given" unless block_given?
begin
client.query("BEGIN")
yield
client.query("COMMIT")
rescue
client.query("ROLLBACK")
end
end
end
и:
DBConnector.transaction do
# your db queries here
end
Как мне успешно объединить два?