Hier ist meine Frage:Warum ist die Anzahl der betroffenen Zeilen falsch?
SELECT u.password, r.active
FROM users u
INNER JOIN resend_pass r
ON u.id = r.user_id
WHERE r.token = 'mytoken' AND r.active = 1
Das Ergebnis der Abfrage oben ist dies:
+----------+--------+
| password | active |
+----------+--------+
| mypass | 1 |
+----------+--------+
Hinweis:token
Spalte ist einzigartig, so dass immer das Ergebnis eine Reihe ist (oder Nullreihe).
Jetzt habe ich konvertieren, dass select
Anweisung zu einer update
Anweisung wie folgt:
UPDATE users u
INNER JOIN resend_pass r
ON u.id = r.user_id
SET u.password = 'mynewpass',
r.active = 0
WHERE r.token = 'mytoken' AND
r.active = 1
Und dann das Ergebnis wird so sein:
+-----------+--------+
| password | active |
+-----------+--------+
| mynewpass | 0 |
+-----------+--------+
Ok gut, alle fein. nur ich weiß nicht, warum die Anzahl der betroffenen Zeilen 2
ist? Wie Sie sehen, gibt es nur eine Zeile und ich habe zwei Spalten einer Zeile aktualisiert, also warum die Zeile betroffen ist 2
?
echo $stm->rowCount(); // 2
Sollte es nicht 1
sein?
Sie aktualisieren 2 Zeilen jeweils in den Tabellen 'user' und' resend_pass'. –