Hi,
this might be obvious for the more enlightened among us, alas, I had to learn it the hard way (and I hope my interpretation is right):
WHENEVER you use ingres_commit(), you cannot use any other ingres-commands for this connection anymore, since ingres_commit() closes it. That means that any ingres_fetch_row/object/whatever has to come before the ingres_commit-call. I first thought, each ingres_query() had to be "committed", but that was wrong.
ingres_commit
(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)
ingres_commit — Beendet eine Transaktion
Beschreibung
$link
)ingres_commit() schließt die aktuell offene Transaktion ab, und schreibt alle Veränderungen in die Datenbank.
Dadurch wird die Transaktion beendet. Eine neue Transaktion kann geöffnet werden, indem man eine neue Abfrage mit ingres_query() an den Datenbankserver schickt.
Sie können auch den Server automatisch nach jeder Abfrage einen Commit ausführen lassen, wenn sie die Funktion ingres_autocommit() aufrufen, bevor Sie die Transaktion öffnen.
Standardmäßig führt Ingres am Ende einer Anfrage ein Rollback für nicht committete Transaktionen durch. Verwenden Sie diese Funktion oder die Funktion ingres_autocommit(), wenn Sie sicherstellen wollen, dass Ihre Daten in die Datenbank übertragen werden.
Parameter-Liste
-
link -
Die Verbindungskennung
Rückgabewerte
Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.
Siehe auch
- ingres_query() - Sendet eine SQL-Abfrage an den Ingres-Server
- ingres_rollback() - Setzt eine Transaktion zurück
- ingres_autocommit() - Schaltet den autocommit-Modus an oder aus
ingres_commit
23-Jan-2002 06:00