Hi,
du vermischt hier zwei völlig unterschiedliche Ebenen. PHP ist es egal was du für eine Abfrage gemacht hast, was PHP aus der Datenbank bekommt sind Spalten mit einem bestimmten Namen in einer bestimmten Reihenfolge. Ob du in PHP mittels Spaltennummer oder -name darauf zugreifst, ist vollkommen irrelevant.
Auf der Ebene der Datenbank allerdings bietet sich ein völlig anderes Bild:
Nehmen wir mal eine Tabelle name|vorname|alter
SELECT name, vorname, alter ...
gibt immer diese 3 Spalten in dieser Reihenfolge raus.
SELECT *
kann (und wird in aller Regel) ebenfalls name,vorname,alter liefern, es steht allerdings nirgendwo geschrieben, dass es das tun muss. Wenn es der Datenbank passt kann sie auch alter,vorname,name liefern, sie hat genauso richtig gearbeitet.
Bei einem PHP-Zugriff bliebe nun zwar der Zugriff über die Spaltennamen weiterhin in Takt, der Zugriff über die Nummern wäre allerdings über den Haufen geworfen - es gäbe keinen Fehler, nur die Felder wären eben in der anderen Reihenfolge.
Und eben auf genau jener Datenbankebene wird dir von der Nutzung von SELECT * abgeraten, und aus genau dem selben Grund vermute ich auch, dass es keinerlei Unterstützung für Insert/Update auf Spalten-Nummer-Basis gibt - schlichtweg weil die Spaltenreihenfolge modellgemäß irrelevant ist.
Gleiches gilt ja für die Reihenfolge der Datensätze, du kannst ja nicht sagen du möchtest den 3. Datensatz updaten, weil es keinen dritten gibt. Die Sortierung entsteht erst über eine entsprechende Abfrage.
MfG
Rouven
-------------------
Inter Arma Enim Silent Leges -- Cicero