Отображение ложного результата, в то время как запрос вернул true - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь выполнить приведенный ниже код.

Выполнение прошло успешно, но отображается извините, запрос не может быть выполнен ...

Мои коды:

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 голосов
/ 11 ноября 2018

Вам нужно return результат execute(). Поскольку вы ничего не возвращаете, по умолчанию оно считается null, поэтому ваше условие if() всегда проверяет его как false и переходит к части else().

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
        }
    }
...