我正在使用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
您可以使用以下命令测试NULL
SQL 列值:
if ($avp(status) == "<null>")
。相当于:
if ($(avp(status)[0]) == "<null>")
这是我们让它工作的唯一方法,因为$avp(status) = NULL;
语句旨在删除 AVP 堆栈中最上面的值。
如果您声称else
语句在应该执行时未执行,请给出一个最小可行示例,以及opensips -V
的输出,可能会单独打开一个新问题。