代码之家  ›  专栏  ›  技术社区  ›  Kamal Panhwar

Opensips avp\ U db\ U查询无法比较空值

  •  1
  • Kamal Panhwar  · 技术社区  · 6 年前

    我使用avp\u db\u查询来检索我的表行,有时一个字段值为空。但当我使用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
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Liviu Chircu    6 年前

    你可以测试 NULL SQL列值具有:

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

    ... 相当于:

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

    考虑到 $avp(status) = NULL; 语句用于删除AVP堆栈中最顶层的值。

    如果你声称 else minimally viable example ,以及 opensips -V ,可能会打开一个新的 issue ,分别。