代码之家  ›  专栏  ›  技术社区  ›  Amin Hijaz

为什么查询的if语句返回false?

  •  1
  • Amin Hijaz  · 技术社区  · 7 年前

    我面临的问题是,我键入的条件句返回false!

    if ($db->addkey($key_value,$key_balance,$key_created_date))
    {
        echo 'TRUE';
    }
    else
    {
    
        echo 'FALSE';
    
    }
    

    我要说的是 $db->addkey($key_value,$key_balance,$key_created_date 工作正常,并将值完美地传递给数据库,但我仍然很清楚为什么此语句返回false?

    这个 addkey 功能是:

        public function addkey($key_value,$key_balance,$key_created_date){
        if ( !$this->link ) return false;
        $query = "INSERT INTO `" . $this->table_prefix . "keys` (`key_value`,`key_balance`,
            `key_created_date`)
            VALUES('" . $this->realEscapeSingle($key_value) .
            "', '" . $this->realEscapeSingle((int)$key_balance) . "', '" . $this->realEscapeSingle($key_created_date) . "')";
    
        ++$this->queries_;
        mysqli_query($this->link,$query);
    
        $key_id = mysqli_insert_id($this->link);
        if( !$key_id )
        {
            echo mysqli_errno($this->link) . ": " . mysqli_error($this->link);
            return false;
        }
    }
    

    变量为:

    $key_value = "25H8G-PIEAU-RB8H2";
    
    $key_balance = 10;
    
    $key_created_date = date("Y-m-d h:m:s");
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Martin Miguel Stevens    7 年前

    你的问题是 addkey 方法无法返回 true

    因此,当您在 if(...) 语句,则无论该方法是否执行了其预期任务,if永远不会运行。

    请参见代码:

    public function addkey($key_value,$key_balance,$key_created_date){
        ....
    
      $key_id = mysqli_insert_id($this->link);
      if( !$key_id )
       {
         echo mysqli_errno($this->link) . ": " . mysqli_error($this->link);
         return false;
       }
    
     return true; // this catch that if none of the return false 
                  // are triggered then the function MUST be true. 
    
    } 
    
        2
  •  1
  •   Martin Miguel Stevens    7 年前

    您将要添加 return true ->addkey 方法如果没有检测到错误,可能在底部?

    推荐文章