Requête qui ne s'exécute pas
Salut à vous !
J'ai un petit souci pour executer une requete SQL avec OCI sous PHP5.
Voilà le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
function executeQuery($q, $connection)
{
global $db_type ;
if($db_type == "mysql")
{
$r = mysql_query($q) or die("Error ".$db_type." : Failed to execute the query :".$q) ;
return $r ;
}
else if($db_type == "oracle")
{
$statement = oci_parse($connection, $q) or die ("Error ".$db_type." (in ".__FILE__."): Failed to prepare the statement for query ".$q) ;
oci_execute ($statement, OCI_DEFAULT) or die ("Error ".$db_type." (in ".__FILE__."): Failed to execute the statement for query ".$q);
return $statement ;
}
else
exit("Error (in ".__FILE__."): Wrong database type ->".$db_type) ;
} |
Le problème n'apparait qu'avec le SGBDR Oracle 10g XE...
La connexion à la base se fait sans probleme avec un oci_connect(..), et le oci_parse se déroule également sans erreur.
Par contre, lorsque j'appelle oci_execute(..) lorsque la query SQL est
Code:
1 2
|
$query = "DESC ma_table" ; |
Ça plante, avec l'erreur :
Code:
Warning: oci_execute() [function.oci-execute]: ORA-00900: invalid SQL statement in /usr/local/apache2/htdocs/mon_site/db_functions.php
et la fonction oci_error() ne me renvoie rien !!
Par contre que si je fais un SELECT * FROM ma_table, aucune erreur et tout marche (à priori)...ce serait donc la requete DESC qu'il n'aime pas...pourtant sous SQL *Plus elle marche impec.
Vous savez d'où cela peut venir ? Merci beaucoup pour vos lumières !