2010-12-14 31 views
0

J'ai démarré un projet dans lequel l'utilisateur peut se connecter à une base de données mySQL ou à une base de données Oracle. J'ai supprimé la partie mySQL mais Oracle est un peu difficile. Les requêtes standard fonctionnent comme SELECT * FROM author, mais lorsque j'essaie de charger un script pour créer le schéma, j'obtiens des erreurs d'opération non valides. J'ai essayé d'utiliser 'START' et '@' de différentes façons mais en vain. Ces commandes fonctionnent dans la ligne de commande mais pas dans php. Je l'ai essayé ce qui suit:comment exécuter un script Oracle à l'aide de 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); 
} 

Répondre

1

oci_parse

ressources oci_parse (ressource de connexion $, chaîne sql_text de $)

Il attend une instruction SQL au lieu du nom de fichier.

Vous voulez essayer:

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

C'est ce que je avais besoin. Je vous remercie! –