Моя проблема заключается в следующем
Y имеет две функции, которые вызываются из функции (метода)
Если результат первой функции равен TRUE, вторая функция выполняет запрос выбора и обновления.
Вторая функция выполняет выбор с помощью команды запроса ($ sql)
Запрос на обновление использует:
$stmt = $db->prepare($sql);
$stmt->execute(arraywithvalues);
по отдельности обе функции работают отлично, но не тогда, когда они вызываются обеими
другими словами, к тому времени, когда вторая функция должна быть выполнена, она потерпит неудачу.
Если я закомментирую первую функцию, она будет работать нормально?
EDIT
Запрос на обновление
$tt = time() - 3600;
$w =array(NULL, NULL, $passw_new, $passw_key_new, $user_id);
$sql ="UPDATE table SET new_passw_requested =?";
$sql .=" WHERE passw_key_new='b02cdf33e46923de5a097c594e846764'";
$sql .=" AND UNIX_TIMESTAMP(new_passw_requested) >= $tt";
$sql .= " AND id=?";
Фактические функции. 1) can_reset_passw (), который выполняет запрос выбора, 2) reset_passw (), который выполняет один выбор, а затем обновление.
Обе функции работают нормально независимо, как я сказал выше.
ошибка: найдено одно
SELECT * FROM table WHERE id = :id AND actief = :actief
Array ( [0] => SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens )
так что-то с этим связывается
Я пытался установить $ stmt = NULL для очистки ресурсов, но это не сработало.
Каким-то образом токены первого выбора остаются в памяти, я думаю
Что я мог сделать, чтобы это исправить?
решена
Последняя ошибка поставила меня на правильный путь.
Класс dbabstraction содержал в памяти де условия
спасибо, Ричард