pdo Неверный номер параметра

0

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

Y имеют две функции, вызываемые изнутри функции (метода)

Если результатом первой функции является TRUE, вторая функция выполняет запрос выбора и обновления.

Вторая функция выполняет выбор с помощью команды query ($ sql) В запросе обновления используется:

$stmt = $db->prepare($sql);
 $stmt->execute(arraywithvalues);

обе функции работают отлично, но не тогда, когда они вызываются как другими словами, к тому моменту, когда вторая функция должна быть выполнена, она потерпит неудачу. Если я прокомментирую первую функцию, она будет выполнена нормально?

ИЗМЕНИТЬ

Запрос на обновление

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

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

  • 0
    В чем проблема, которую вы видите? Какие запросы выполняются? И т.д. Пожалуйста, поделитесь некоторыми более подробной информацией.
  • 0
    Не могли бы вы предоставить немного больше кода? Особенно $stmt = $db->prepare(... роль между if ($rows) $stmt = $db->prepare(... if ($rows) и вторым $stmt = $db->prepare(... кажется, что :-)
Показать ещё 4 комментария
Теги:
select
pdo
execute

1 ответ

0

(Это было решено некоторое время назад OP и решением, отредактированным в вопросе, так что оно оставалось в оставшейся без очереди очереди. Скопировано здесь как ответ wiki сообщества, чтобы отразить статус, хотя ответ был очень коротким. см. Вопрос без ответов, но проблема решена в комментариях (или добавлена ​​в чат))

OP писал (а):

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню