postgresql und pear prepare
am 19.12.2005 15:10:23 von Gerd SchuckarHallo,
die beschreibung meines problemes ist etwas länger ausgefallen.
In einer Postgresql Datenbank habe ich diverse Tabellen um einen Fuhrpark
zu verwalten. Unter anderem werden hier für verschiedene Fahrzeuge
Tankvorgänge dokumentiert. Dazu gibt es in der DB eine stored procedure
mit namen fkt_insertTankung() mit 5 parametern.
Aufgabe dieser Function ist:
Annahme der für einen Tankvorgang relevanten Daten
Speichern dieser Daten in der entsprechenden Tabelle
Bei Erfolg berechnen der gefahrenen Kilometer seit dem letzten
Tankungvorgang und speichern in dieser Tabelle
Bei Erfolg berechnen des durchschnittlichen Verbrauches seit des letzten
Tankungvorganges und speichern in dieser Tabelle.
Das funktioniert ausgezeichnet.
Via php - code möchte ich jetzt über ein HTML Formular mehrere
Tankvorgänge vom Bearbeiter eintragen lassen. Das Formular ist kein
Problem. PHP soll jetzt mittels:
$this->stm=$this->db->prepare("SELECT fkt_insertTankung"
." ( ?, ?, ?, ?, ? )");
$this->result = $this->db->executeMultiple($this->stm,$inserts); Die
stored procedure fkt_insertTankung aufrufen. Dies geschieht auch. Es
werden jedoch keine Werte eingetragen und demzufolge auch keine
Verbrauchswerte errechnet. Im Logfile von postgresql steht: nicht
unterstütztes Protokoll.
Mit : $query = sprintf("SELECT fkt_insertTankung
(%d ,%d, %f, %f, %s)", $formvars['txtFahrzeugID'],
$formvars['txtKmStand'],
$formvars['txtLiter'],
$formvars['txtBetrag'],
"'".$formvars['txtDatum']."'"
);
return $this->sql->query($query,1);
funktioniert alles einwanfrei. Damit können aber nicht mehrere
Tankvorgänge zugleich vom Bearbeiter abgearbeitet werden. Meine Frage:
Versteht das prepare in pear::db kein Select? Oder habe ich da etwas
falsch verstanden? In der Doku und bei google habe ich nichts Aufklärendes
gefunden.
Danke
--
Gerd Schuckar