避免在地图变量中使用引号
Avoiding quotes in a map variable
我正在尝试使用地图函数中的变量创建查询,但存储在其中一个字段中的内容确实包含 '
(引号,如 Barney's)。所以每次它破裂,因为 '
都会破坏声明。我怎样才能绕过它?
我尝试使用 .split
函数但没有成功。
不用担心 SQL 注入,因为我只是将数据从 API 加载到我的数据库。
代码:
query_values = activities.map do |activity|
'(' +
"#{activity['id']},
""'#{activity['type']}""'" #using ""' just to fill the column when empty cells are raised
+')'
end
query = "INSERT INTO pd_activities VALUES #{query_values.join(', ')}"
提前致谢。
中列出了如何正确执行此操作
db[:pd_activities].insert(
id: activity['id'],
type: activity['type']
)
这会为您解决所有转义问题。如果 activity
只有这两个键,您甚至可以这样做:
db[:pd_activities].insert(activity)
我正在尝试使用地图函数中的变量创建查询,但存储在其中一个字段中的内容确实包含 '
(引号,如 Barney's)。所以每次它破裂,因为 '
都会破坏声明。我怎样才能绕过它?
我尝试使用 .split
函数但没有成功。
不用担心 SQL 注入,因为我只是将数据从 API 加载到我的数据库。
代码:
query_values = activities.map do |activity|
'(' +
"#{activity['id']},
""'#{activity['type']}""'" #using ""' just to fill the column when empty cells are raised
+')'
end
query = "INSERT INTO pd_activities VALUES #{query_values.join(', ')}"
提前致谢。
db[:pd_activities].insert(
id: activity['id'],
type: activity['type']
)
这会为您解决所有转义问题。如果 activity
只有这两个键,您甚至可以这样做:
db[:pd_activities].insert(activity)