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: