Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL][PDO] execute zawsze zwraca 1
Geston
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 9
Dołączył: 29.11.2010
Skąd: T

Ostrzeżenie: (0%)
-----


Doszukać błędu się nie mogę i takowych też nie otrzymuje, wykonanie zapytania kończy się powodzeniem, problem polega na tym że zawsze, nawet jeżeli nie powinno.

  1. $result = $dbc -> prepare('UPDATE `users` SET `active` = NULL WHERE `active` = :code');
  2. $result -> bindValue(':code', $code, PDO::PARAM_STR);
  3.  
  4. echo $result -> execute();


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.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:58