phpbar.de logo

Mailinglisten-Archive

[php] hatter oder hatter nicht

[php] hatter oder hatter nicht

Georg Richter php_(at)_phpcenter.de
Sat, 26 Jan 2002 08:30:28 +0100


Moin Norbert,

> wenn ich mit mysql_db_query(); ein UPDATE absetze, erhalte ich
> <zitat>
> eine Ergebnis-Kennung als Referenz auf das Anfrageergebnis,
> oder FALSE im Fehlerfall
> <zitat/>

<zitat>
Note: This function has been deprecated since PHP 4.0.6. Do not use this 
function. Use mysql_select_db() and mysql_query() instead. 
</zitat>

> also fetch ich das 'Anfrageergebnis', was immer das ist, und
> erhalte _immer_ 'N' zurueck, eigentlich hatte ich mich auf die
> 'affected rows' gefreut, aber das war wohl nix... :-((

Hmm, wäre das mit "Abfrageergebnis" übersetzt würde es mehr Sinn machen:

Ok, das Problem des Rückgabewertes liegt darin, dass die PHP-Funktion 
mysql_query mehrere Operationen durchführt:

Zum ersten den Api Call mysql_real_query der TRUE oder FALSE zurückliefert.
Hier liefert Dir die PHP mysql_query Funktion TRUE oder FALSE zurück falls 
was nicht klappte - bestes Beispiel sind hier Syntax-Errors.

Als nächstes wird je nachdem ob Du mysql_query oder unbuffered_query 
verwendest mysql_use_result oder mysql_fetch_result aufgerufen. Dies 
geschieht immer da die PHP Funktion die Syntax der SQL-Query nicht parst. 
Sinn würde das nur bei SELECT Statements machen.

Im Falle von UPDATE oder DELETE gibt es natürlich kein Resultset, daher auch 
ein FALSE als Rückgabewert.

Ich werde mal einen kleinen Bugreport schreiben, damit das in der 
Dokumentation geändert wird und klarer ersichtlich ist.

> 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>

Gruss und schönes Wochenende

Georg


php::bar PHP Wiki   -   Listenarchive