Ich habe einen Insert-Befehl mit 7 Feldern, von denen der Inhalt von drei Feldern durch (umfangreiche) Subqueries berechnet werden soll. Dabei bekomme ich, wenn ich mit prepared Statement den Befehl aus PHP aufrufe die Fehlermeldung:
“2010-10-07 12:51:04 CEST ERROR: could not determine data type of parameter $5”
Selbstverständlich läuft der Befehl - mit konkreten Daten - in pgadmin.
Der (Anfang) des Befehls, wie er im Logfile angezeigt wird, lautet:
Wenn ich die Fehlermeldung richtig verstehe, sollte der 5. Parameter das Feld “interval” sein, und der Wert in der Zeile, die mit $3 beginnt berechnet werden.
Ich habe versucht den Typ per cast auf integer festzulegen, aber das gelang mir nicht.
Wenn mehr Infos benötigt werden, kann ich die gern senden.
Vielen Dank,
Rolf
Das ist die exakte Fehlermeldung - es folgt nur noch der SQL-Befehl, von dem ich ja den Anfang angezeigt habe.
Ich glaube ich habe meinen Fehler gefunden. Sehr wahrscheinlich kommt die Subquery mit einer Fehlermeldung oder NULL als Ergebnis zurück. Dann ist mir auch klar (geworden), warum man NULL nicht casten kann, egal wohin.
Muss aber erst noch den SQL-Befehl korrekt aufbauen lassen um meine Annahme zu bestätigen.
BTW:
Habe noch eine Zusatzfrage: Sind berechnende Subqueries in einem INSERT “transaktionstechnisch” geschützt - soll heißen, sind die Tabellen/Felder solange gesperrt, bis der Insert mit den Subqueries fertig ist?
Ich Antworte mir mal selbst - besser gesagt für alle anderen Leser.
Es war die fehlerhafte Subquery, auf die mit o.g. Fehlermeldung reagiert wurde.
Dadurch, dass ich die Frage hier formulieren musste, ist mir nach und nach immer klarer geworden, wo mein Problem lag.