PDO 查询总是返回 1 或 true [英] PDO query is always returning 1 or true

查看:31
本文介绍了PDO 查询总是返回 1 或 true的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在删除某行之前检查它是否存在.我的表中的行不存在,但它总是返回 1:

I am trying to check if a row exists before I delete it. The row in my table doesn't exist but it always returns 1:

$orders = $this->db->prepare("SELECT * FROM orders WHERE id=? AND user=?"); 
            $check = $orders->execute(array($message,$this->model->checkapi($data,$message)));
            echo $check;
            if($check){
            $deleteorder = $this->db->prepare("DELETE FROM orders WHERE id=? AND user=?"); 
            $deleteorder->execute(array($message,$this->model->checkapi($data,$message)));
                array_push($result, array('success' => true,
                                          'deleted' => $message));
                echo json_encode(array("result" => $result));
                die();
            }else{

$this->model->checkapi($data,$message)返回 fakeusername 和 id/$message 返回 136

$this->model->checkapi($data,$message) returns fakeusername and id/$message returns 136

我检查了我的数据库,ID 存在,但 ID 和用户名不存在.

I've checked my database, the ID exists, but not the id and username together.

我正在发送 ID:136 和用户名:fakeuser

I'm sending id: 136 and username: fakeuser

在数据库中,该行以 id:136 和用户名:demo 的形式存在.

in the databse the row exists as id:136 and username: demo.

我不知道为什么当由于不匹配而不应选择该行时它会返回 1.

I'm not sure why it's returning 1 when the row shouldn't be selected due to it not matching.

推荐答案

你应该在 execute() 之后使用 fetch(),因为 execute() 只在成功时返回 TRUE 或在失败时返回 FALSE :

You should use fetch() after execute(), because execute() just returns TRUE on success or FALSE on failure :

$orders->execute(...
$result = $orders->fetch(PDO::FETCH_ASSOC);
print_r($result);

这篇关于PDO 查询总是返回 1 或 true的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆