Mam problem z zapytanie preinterpretowanym. Kod wygląda tak:
-konstruktor
[PHP] pobierz, plaintext
- private static $db;
- function __construct() {
- if(!self::$db) {
- self::$db = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
- }
-źle działająca metoda:
[PHP] pobierz, plaintext
- public function confirm($sEmail, $iListId, $sHash) {
- if($sHash != $this->generateHash($sEmail))
- return false;// to jest ok
- $sEmail = self::$db->real_escape_string($sEmail);
- $iListId = intval($iListId);
- // do tej pory tez jest ok
- $stmt = self::$db->prepare('UPDATE `subscriptions` SET `confirm` = 1 WHERE `listId` = ? AND `userId` = (SELECT `userId` FROM `users` WHERE `email` = ? LIMIT 1)'); //var_dump zwraca true
- $stmt->bind_param('is', $iListId, $sEmail);//var_dump zwraca true
- $stmt->execute();//var_dump zwraca true
- echo $stmt->affected_rows;// =0
- if($stmt->affected_rows == 1) {
- $stmt->close();
- return true;
- }
- $stmt->close();
- return false;
- }
Dane w bazie nie są uaktualnione

Czy widzicie jakiś błąd?
Zapytanie jest dobre, ponieważ kiedy użyje go w bazie to wszystko działa.