我想在具有以下数组的Ruby文件中执行我的INSERT
字符串:
names_arr = ["Jack", "Susan", "Peter"]
在同一个Ruby文件中,我需要SQLite3 gem并拥有以下代码:
names_arr.each do |each_name|
db.execute('INSERT INTO users (name) VALUES ("#{each_name}");')
end
我期待在我的“用户”表中:
id name
1 Jack
2 Susan
3 Peter
相反,我得到了这个:
id name
1 #{each_name}
2 #{each_name}
3 #{each_name}
很明显我没有正确插值,但我尝试了很多不同的东西,无法弄清楚我错在哪里。
我正在使用SQLite3和Ruby。
答案 0 :(得分:2)
您在此代码中遇到了几个问题:
names_arr.each do |each_name|
db.execute('INSERT INTO users (name) VALUES ("#{each_name}");')
end
%Q{...}
字符串,正则表达式字面值,...)。 SQLite驱动程序的execute
了解?
占位符,因此您可以这样说:
names_arr.each do |each_name|
db.execute('INSERT INTO users (name) VALUES (?)', each_name)
end