我正在使用avp_db_query检索我的表行,有时一个字段的值为空。但是当我使用if条件时,它不会跟随并继续前进。
avp_db_query("select status from orders where id = 1", "$avp(status);")
现在如果我写条件
if($avp(status)==1){
do success
} else {
do failure
exit();
}
上述条件对失败状态不起作用并继续,但是当我放置两个if条件并检查它是否等于1或等于0时,它就起作用了。
另一个问题是,如果此列的值为空而不起作用,则继续发出以下警告。
WARNING:core:comp_scriptvar: invalid EQUAL operation: left is
VARIABLE_ELEMENT/STRING_VAL, right is NUMBER/NO_VAL
答案 0 :(得分:1)
您可以使用以下方法测试NULL
SQL列值:
if ($avp(status) == "<null>")
...等同于:
if ($(avp(status)[0]) == "<null>")
鉴于$avp(status) = NULL;
语句旨在删除AVP堆栈中的最高值,这是使它起作用的唯一方法。
如果您声称else
语句未在应有的时间执行,请给出一个minimally viable example以及opensips -V
的输出,可能会打开一个新的{{ 3}}。