PDO query is always returning 1 or true

老子叫甜甜 提交于 2019-12-01 20:59:48

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);

When execute succeeds, it returns TRUE. In your case, the query succeeds, it just returns 0 rows, which is a completely valid result. If you want to check whether the query returned any rows, you could attempt to fetch from the result:

$orders->execute(array($message,$this->model->checkapi($data,$message)));
$check = $orders->fetch();
if ($check) {

Having said that, this entire approach strikes me as wrong - deleting a single row isn't a considerably heavier operation than querying that row, if at all. And in the worst case, where it exists, you're performing two statements instead of one. I'd just go ahead and send the delete statement, and if it doesn't affect any rows (because they don't exist), so be it.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!