You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Lua脚本中通过FreeSWITCH dbh获取PostgreSQL多字段值的问题

FreeSWITCH Lua脚本获取PostgreSQL多字段值的解决方法

first_value()方法只能提取查询结果的第一个字段值,要同时拿到A和B两个字段,你可以用first_row()获取整行数据,再从返回的表中提取对应字段。

修改后的代码如下:

local dbh = Database.new('system');
-- 注意:原代码里提前调用Settings.new时A、B还没定义,会报错,后续要调整顺序
local sql = "SELECT A, B FROM TABLE WHERE A = '" .. A .. "'";
-- 获取整行数据,返回一个包含字段名和对应值的表
local row = dbh:first_row(sql);
local A = row.A;
local B = row.B;

dbh:release()

额外提醒两个关键点:

  • 直接拼接SQL字符串存在SQL注入风险,推荐用参数绑定的方式更安全:
    local sql = "SELECT A, B FROM TABLE WHERE A = ?";
    local row = dbh:first_row(sql, A); -- 第二个参数是绑定的变量
    
  • 原代码中local settings = Settings.new(dbh, A, B);这一行放在A、B变量定义之前,会触发"变量未定义"的错误,需要移到A、B获取完成之后再调用。

内容的提问来源于stack exchange,提问作者Len

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:25:18