Одно из полезных применений подготовленных утверждений на любом языке состоит в том, что вы можете подготовить их один раз, а затем выполнить их столько раз, сколько необходимо.
Так что в вашем случае вы execute()
дважды делаете утверждение, ноВполне возможно, что вы можете вставить в цикл целый набор данных с одним и тем же подготовленным оператором.Каждый раз, когда вы вызываете execute()
, вы можете просто передать новый набор значений для запуска подготовленного оператора.В вашем случае это INSERT, поэтому он запускается дважды.
В вашем случае вам, вероятно, просто нужно ...
$stmt = $condb->prepare("INSERT INTO ticket_reponses (ticket_id,user_id,time,response) VALUES (:ticket_id,:user_id,:time,:response)");
if($stmt->execute(array(
"ticket_id" => $ticket,
"user_id" => $_SESSION['user_id'],
"time" => time(),
"response" => $response))) {
echo "SUCCESS";
}