繁体   English   中英

为什么查询语句返回false?

[英]Why does this if statement of query return false?

我面临的问题是我键入的条件语句返回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");

您需要在->addkey方法的某处添加return true 如果未检测到错误,也许在底部?

您的问题是您的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. 

} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM