2010-12-14 2 views
0

ausführen Ich habe ein Projekt gestartet, wo der Benutzer entweder eine Verbindung zu einer MySQL-Datenbank oder einer Oracle-Datenbank herstellen kann. Ich habe den MySQL-Teil runter, aber Orakel ist ein bisschen schwierig. Standardabfragen funktionieren wie SELECT * FROM author, aber wenn ich versuche, ein Skript zu laden, um das Schema zu erstellen, erhalte ich ungültige Operationsfehler. Ich habe versucht, 'START' und '@' auf verschiedene Arten zu verwenden, aber ohne Erfolg. Diese Befehle funktionieren in der Befehlszeile, aber nicht in PHP. Ich habe das versucht, folgendes:wie ein Oracle-Skript mit PHP

else if($databaseType == "Oracle") 
{ 
$c = oci_connect($username, $password, $server); 
    if (!$c) { 
     echo "Unable to connect: " . var_dump(oci_error()); 
     die(); 
    } 


    // Delete previous schema 
    $s = oci_parse($c, "@/oracle/dropall"); 
    oci_execute($s, OCI_DEFAULT); 

    // Create schema 
    $s = oci_parse($c, "@/oracle/oracle"); 
    oci_execute($s, OCI_DEFAULT); 

    // Create first trigger 
    $s = oci_parse($c, "@/oracle/oracle_trigger1"); 
    oci_execute($s, OCI_DEFAULT); 

    // Create second trigger 
    $s = oci_parse($c, "@/oracle/oracle_trigger2"); 
    oci_execute($s, OCI_DEFAULT); 

    // Populate the database 
    $s = oci_parse($c, "@/oracle/oracle_populate"); 
    oci_execute($s, OCI_DEFAULT); 


    // Commit to save changes... 
    oci_commit($c); 

    // Logoff from Oracle... 
    oci_free_statement($s); 
    oci_close($c); 
} 

Antwort

1

OCI_PARSE

Ressource oci_parse (resource $ connection, string $ sql_text)

Es eine SQL-Anweisung anstelle von Dateinamen erwartet.

Möchten Sie folgendes versuchen:

$s = oci_parse($c, file_get_contents('/oracle/dropall')); 
+0

Dies ist, was ich brauchte. Vielen Dank! –