I want to compare an array element to wether 0 or 1. For that I want to select my is_answer_accepted
that is returned by the function is_answer_accepted($aid)
if($is_answer_accepted['is_answer_accepted'] === 0) {
delete_all_answer_as_solved($_GET['question']);
mark_question_as_solved($_GET['answer'], $_GET['question']);
}
if($is_answer_accepted['is_answer_accepted'] === 1) { //Debugger message: $is_answer_accepted: {is_answer_accepted => 0}[1]
delete_answer_as_solved($_GET['answer'], $_GET['question']);
}
I'm clicking on a non accepted answer (confirmed), therefore my is_answer_accepted
should be 0. Somehow my comparison is failing and $is_answer_accepted['is_answer_accepted'] = 1
is returning true even tho it is certainly 0.
function is_answer_accepted($aid) {
global $conn;
$query=$conn->prepare("SELECT is_answer_accepted FROM is_answer_accepted(:aid)");
$query->execute(array($aid));
return $query->fetch();
}
When I do this query I return 1 if solved_date != NULL
and 0 otherwise.
CREATE OR REPLACE FUNCTION is_answer_accepted(aid INT)
returns INTEGER
LANGUAGE plpgsql
AS $$
DECLARE date_solved TIMESTAMP;
DECLARE answer_accepted INTEGER;
BEGIN
SELECT solved_date FROM answers WHERE answers.publicationid = aid
INTO date_solved;
IF date_solved is null THEN
answer_accepted := 0;
ELSE
answer_accepted :=1;
END IF;
return answer_accepted;
END
$$;
The response is:
is_answer_accepted
------------------
0
(1 row)
Any idea how the comparison is wrong?
Kind regards