phpbar.de logo

Mailinglisten-Archive

[php] hatter oder hatter nicht

[php] hatter oder hatter nicht

Ulf Wendel php_(at)_phpcenter.de
Sat, 26 Jan 2002 12:25:21 +0100


Georg Richter wrote:

>>Frage:
>>wie kommt man denn nun an die 'affected rows' ?  <gruebel>
>>
> 
> <zitat>
> mysql_affected_rows -- Get number of affected rows in previous MySQL operation
> </zitat>


Genau an der zweifel ich, Georg. Sonst würde es folgenden, bekannten 
PHPLib Session-Bug nicht geben, den ich erst vor zwei Tagen 
kennengelernt habe. Die PHPLib versucht folgende Kette:

   update
   affected_rows
   select auf update Daten
   insert

Wenn UPDATE-Query ausgeführt und keine Zeilen betroffen, dann 
kontrolliere die Einfügung mit SELECT und mache ggf. ein INSERT.

Diese wirklich konservative, vorsichtige Kette flog mir um die Ohren:
Update Ok, 0 affected rows, select zeigt leeren Resultset, insert 
schlägt aufgrund eines duplicate key fehlt, der nur entstehen kann, wenn 
das update funktioniert.

Legst Du ein usleep(100) hinter das affected_rows, klappt es. Da stimmt 
in einigen MySQL Versionen etwas nicht. Der DB-Server meldet die 
Einfügung erst verspätet an den Client. Dagegen ist man machtlos, 
deswegen die vorgeschlagenen Auswege PostgreSQL oder versuchen über eine 
UDF eine Triggertable zu verändern.

Ulf

-- 
Jobgesuch: Anwendungsentwicklung, Schwerpunkt PHP in HH
Berufserfahrung, Kongressannahmen... http://www.ulf-wendel.de


php::bar PHP Wiki   -   Listenarchive