显示错误结果,而查询返回true

时间:2018-11-11 06:29:18

标签: php mysqli pdo sql-update

我正在尝试执行以下代码。

执行成功,但是显示抱歉,查询无法执行...

我的代码:

class.php

public function admin_update($id,$update,$value)
    {
        try{
            $stmt = $this->conn->prepare("UPDATE admin SET ".$update."=:_value WHERE Id=:_id");
            $stmt->bindparam(":_value",$value);
            $stmt->bindparam(":_id",$id);
            $stmt->execute();
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
        }
    }

update.php

$id = "1";

if(admin_update($id,"Access","Y"))
        {               
            echo "Success";
        }
        else
        {
            echo "sorry, Query could not execute...";
        }

MySQL表已更新,但不显示成功,而是显示对不起,查询无法执行...

1 个答案:

答案 0 :(得分:1)

您需要return execute()的结果。由于您未返回任何内容,因此默认情况下将其视为null,因此您的if()条件始终将其检查为false,然后转到else()部分。 / p>

public function admin_update($id,$update,$value)
    {
        try{
            $stmt = $this->conn->prepare("UPDATE admin SET ".$update."=:_value WHERE Id=:_id");
            $stmt->bindparam(":_value",$value);
            $stmt->bindparam(":_id",$id);
            return $stmt->execute(); // return the result of execute
        }
        catch(PDOException $ex)
        {
            echo $ex->getMessage();
            return 0; // return 0 in case of failure
        }
    }