Saja
Member
PHP Problem gelöst nur die Fragen zur Speicherverwaltung sind noch aktuell.
Hallo zusammen
Ich Verwende einen Xampp und eine Oracle XE DB (beides Lokal) und bekomme immer die Fehlermeldung ORA-00911 Ungültiges Zeichen in OCI_Execute. Aber die Datentypen sollten eigentlich passen...
Könnte sowas möglicherweise auch an mangelnden Berechtigungen liegen? Jemand eine Idee?
ach und nochwas müsste ich zum Schluss nochmal ein OCI_free_statement($bla) ; setzen oder wird die Variable wie in C++ direkt nach der if {} freigegeben? Oder allokiert php immer zur laufzeit Speicher und Speichert alles auf dem Heap?
edit der Fehler tritt erst bei dem 2ten Oci_execute auf also die obere Abfrage klappt ohne Probleme
edit die 2te: Den SQL Befehl hab ich so in den SQL Developer eingeben dort funktioniert er soweit dann mit rollback zurückgesetzt.
edit die 3te: Habs gefunden ! Semikolon am ende des SQL - Befehls ist keine gute Idee -.-
Hallo zusammen
Ich Verwende einen Xampp und eine Oracle XE DB (beides Lokal) und bekomme immer die Fehlermeldung ORA-00911 Ungültiges Zeichen in OCI_Execute. Aber die Datentypen sollten eigentlich passen...
Könnte sowas möglicherweise auch an mangelnden Berechtigungen liegen? Jemand eine Idee?
ach und nochwas müsste ich zum Schluss nochmal ein OCI_free_statement($bla) ; setzen oder wird die Variable wie in C++ direkt nach der if {} freigegeben? Oder allokiert php immer zur laufzeit Speicher und Speichert alles auf dem Heap?
edit der Fehler tritt erst bei dem 2ten Oci_execute auf also die obere Abfrage klappt ohne Probleme
edit die 2te: Den SQL Befehl hab ich so in den SQL Developer eingeben dort funktioniert er soweit dann mit rollback zurückgesetzt.
edit die 3te: Habs gefunden ! Semikolon am ende des SQL - Befehls ist keine gute Idee -.-
PHP:
<?php
$conn=oci_connect("Saja", "PWD", "XE")or die ("Verbindung gescheitert")
$stmt =OCI_Parse($conn, "Select count(*) from Personal")
or die ("Fehler beim Parsen");
oci_execute($stmt,OCI_DEFAULT) // Ausfuehren des SQL-Befehls
or die("Fehler beim Ausfuehren des Select-Befehls");
if($res=oci_fetch_array($stmt)){
$res[0]++;
$sql="INSERT INTO PERSONAL (PERSNR,NAME,STRASSE,PLZ,ORT,GEBDATUM)
VALUES(to_number($res[0]),'h','Strasse 12',to_number(93073),'Ort',to_date('2003/07/09','yyyy/mm/dd'));";
$bla=oci_parse($conn,$sql)or die("Syntax Fehler");
oci_execute($bla,OCI_DEFAULT)
or die ("Fehler beim 2ten SQL-Befehl");
oci_commit($conn);
echo "UPDATE DONE";
}
echo ("<br>Die Verbindung zur Datenbank wird geschlossen.");
oci_free_statement($stmt);
oci_close($conn);
?>
Zuletzt bearbeitet: