Как использовать транзакции Mysql2 с подготовленными выписками - PullRequest
0 голосов
/ 23 февраля 2020

Как мне построить транзакцию, используя подготовленные операторы с 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

Как мне успешно объединить два?

...