gpt4 book ai didi

mysql - Ruby - mysql 中的数组执行

转载 作者:行者123 更新时间:2023-11-29 23:46:47 26 4
gpt4 key购买 nike

我正在尝试让下面的代码正常工作。我想将一个数组传递给 mysql 执行,这样我就可以将代码重用到不同的查询。

# This will work, but want to pass a array in execute
st = con.prepare('SELECT * FROM Table WHERE id=? AND x=? AND y=?')
st.execute('123', '2', '2')



# my code
require 'mysql'

def query(str, arr)
begin
con = Mysql.new 'host', 'user', 'pass', 'db'

st = con.prepare(str)
test = arr.map {|str| "\"#{str}\""}.join(',')
st.execute(test)

rescue Mysql::Error => e
puts "#{e.errno} #{e.error}"

ensure
con.close if con
end
end


arr = ['123', '2', '2']
data = query('SELECT * FROM Table WHERE id=? AND x=? AND y=?', arr)

最佳答案

我不熟悉 mysql gem,但我认为 st.execute(*arr) 应该可以工作:

def query(str, arr)
begin
connection = Mysql.new('host', 'user', 'pass', 'db')
statement = connection.prepare(str)
statement.execute(*arr)
rescue Mysql::Error => e
puts e.message
ensure
connection.close if connection
end
end

关于mysql - Ruby - mysql 中的数组执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com