Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » SELECT ... FOR UPDATE Antworten
SELECT ... FOR UPDATE

aykut
Otto-Normal-Poster


Beiträge: 82


Folgender Code führt innerhalb von php kein Update durch,
wenn ich aber in Mysql direkt eingebe, tut es aber.
Fehlermeldung bekomme ich auch nicht.

1: 
2: 
3: 
4:
query ="SELECT count(*) FROM myuser Where myuserId=1 FOR UPDATE;  ";
query .="UPDATE myuser SET email='fn.ln@gmx.de', fname='fn', lname='ln' ";

mysql_query($query, $connection);

Wie benutzt man SELECT ... FOR UPDATE in php5 für mysql?

(Liegt es eventuell daran, daß in dem Query 2 statements sind?)

Aykut

Diese Nachricht wurde geändert von: aykut
  Profil   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


2 getrennte Queries wären denke ich schon empfehlenswert.

---

  Profil   Website   Editieren   Zitieren

aykut
Otto-Normal-Poster


Beiträge: 82


1: 
2:
query1 ="SELECT count(*) FROM myuser Where myuserId=1 FOR UPDATE;  ";
query2 ="UPDATE myuser SET email='fn.ln@gmx.de', fname='fn', lname='ln'  ";


Getrenntes senden der Queries führt dazu,
daß durch query2 alle user upgedated werden statt nur ein "bestimmter" user,
der ja in query1 durch WHERE clause bestimmt ist.

Kurz: Getrenntes absenden der queries (zumindest wie ich sie mache) führt nicht zum gewünschten Ergebnis. :(

Diese Nachricht wurde geändert von: aykut
  Profil   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


Dann mach es doch so:

1:
$query ="UPDATE myuser SET email='fn.ln@gmx.de', fname='fn', lname='ln' WHERE myuserId != 1";


// EDIT: In Query1 versiehst du den User doch mit einem lock, sodass gerade er nicht geupdatet werden kann, oder? Daher müsste die Query eigentlich so lauten:

1:
$query ="UPDATE myuser SET email='fn.ln@gmx.de', fname='fn', lname='ln' WHERE myuserId = 1";



---

Diese Nachricht wurde geändert von: chip
  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben