ruby – pg:exec_params没有替换参数?
发布时间:2020-12-16 23:32:03 所属栏目:百科 来源:网络整理
导读:第一次使用pg gem访问postgres数据库.我已成功连接并可以使用#exec运行查询,但现在使用#exec_params构建简单查询似乎不会替换参数.即: get '/databases/:db/tables/:table' do |db_name,table_name| conn = connect(db_name) query_result = conn.exec_para
第一次使用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; ^> 这似乎是一个如此简单的例子 – 我从根本上误解了如何使用这种方法? 解决方法
您可以使用占位符作为值,而不是标识符(例如表名和列名).这是您使用字符串插值来构建SQL的地方.当然,如果你正在为你的SQL使用字符串争论,你必须确保正确引用/逃避事情;对于标识符,这意味着使用
quote_ident :
所以你会说: table_name = conn.quote_ident(table_name) query_result = conn.exec("SELECT * FROM #{table_name}") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |