Insert in Oracle XE über php klappt nicht

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 -.-
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:

Online-Statistiken

Zurzeit aktive Mitglieder
2
Zurzeit aktive Gäste
39
Besucher gesamt
41

Beliebte Forum-Themen

Zurück
Oben Unten