Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ruby – pg:exec_params没有替换参数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第一次使用pg gem访问POSTGRes数据库.我已成功连接并可以使用#exec运行查询,但现在使用#exec_params构建简单查询似乎不会替换参数.即:
get '/databases/:db/tables/:table' do |db_name,table_name|
  conn = connect(db_name)
  query_result = conn.exec_params("SELECT * FROM $1;",[table_name])
end

结果#< PG :: SyntaxError:错误:语法错误在“$1”或附近第1行:SELECT * FROM $1; ^>

这似乎是一个如此简单的例子 – 我从根本上误解了如何使用这种方法?

解决方法@H_801_10@
您可以使用占位符作为值,而不是标识符(例如表名和列名).这是@R_197_11547@字符串插值来构建SQL的地方.当然,如果你正在为你的SQL使用字符串争论,你必须确保正确引用/逃避事情;对于标识符,这意味着使用 quote_ident

所以你会说:

table_name   = conn.quote_ident(table_Name)
query_result = conn.exec("SELECT * FROM #{table_namE}")

大佬总结

以上是大佬教程为你收集整理的ruby – pg:exec_params没有替换参数?全部内容,希望文章能够帮你解决ruby – pg:exec_params没有替换参数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。