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