$result = $dbc -> prepare('UPDATE `users` SET `active` = NULL WHERE `active` = :code'); $result -> bindValue(':code', $code, PDO::PARAM_STR);
W tabeli "users" mam kolumnę "active" przechowującą wcześniej wygenerowany ciąg znaków. Powyższy kod jest częścią funkcji przyjmującej jeden argument "$code". Wywołanie funkcji ma ustalić wartość pola "active" na NULL.
Jeżeli funkcja otrzyma kod który znajduje się w bazie danych to wszystko OK, zmienia jego wartość na NULL i wywołanie metody "execute()" zwraca wartość 1. Problem pojawia się jak przekażę niepoprawny parametr którego w bazie danych nie ma. Liczba edytowanych rekordów powinna wtedy wynieść 0 a mimo to otrzymuję wynik 1, w bazie danych również nie dochodzi do zmian.
Wywołanie zapytania w phpMyAdmin skutkuje komunikatem "na zielono" przekazującym jednak liczbę zmodyfikowanych rekordów równą 0.
Wygląda to tak jakby PDO interpretowało wykonane sukcesem zapytanie jednoznacznie z dodaniem przynajmniej jednego rekordu. Jakieś sugestie? Z góry dzięki.