无法比较空值avp_db_query



我正在使用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时,它就可以工作。

另一个问题是,如果此列具有 null 值,则没有任何工作,并继续发出以下警告。

WARNING:core:comp_scriptvar: invalid EQUAL operation: left is 
VARIABLE_ELEMENT/STRING_VAL, right is NUMBER/NO_VAL

您可以使用以下命令测试NULLSQL 列值:

if ($avp(status) == "<null>")

。相当于:

if ($(avp(status)[0]) == "<null>")

这是我们让它工作的唯一方法,因为$avp(status) = NULL;语句旨在删除 AVP 堆栈中最上面的值。

如果您声称else语句在应该执行时未执行,请给出一个最小可行示例,以及opensips -V的输出,可能会单独打开一个新问题。

最新更新