pdo Неверный номер параметра - PullRequest
0 голосов
/ 07 декабря 2009

Моя проблема заключается в следующем

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 содержал в памяти де условия

спасибо, Ричард

1 Ответ

0 голосов
/ 27 января 2015

(Это было решено некоторое время назад ОП и решение отредактировано в вопросе, так что оно осталось в очереди без ответа. Скопировано здесь как ответ вики сообщества, чтобы отразить статус, хотя ответ был очень коротким. Если кто-то может чтобы сделать ответ более понятным, они могут редактировать его здесь. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )

ОП написал:

Последняя ошибка поставила меня на правильный путь. Класс dbabstraction держал условия в памяти

...