Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

question PHP et Oracle

1 réponse
Avatar
Steff
Hello tout le monde,

J'essaie d'afficher le résultat d'une requête SQL dans un tableau avec la
fonction OCI_Fetchinto()
mais ça pose un problème parce que dans ma requête SQL je concatène 2 champs
et ça me fait cette erreur.

Warning: ociexecute() [function.ociexecute]: ORA-00911: Caractère non valide
in
c:\pageWeb\tasks_to_do.php on line 103

Fulfiller Request Type Task Name Start Date End Date Expected Delivery date
Client
Warning: ocifetchinto() [function.ocifetchinto]: ORA-24374: définition non
exécutée
après extraction ou exécution et extraction in c:\pageWeb\tasks_to_do.php on
line 117

quelqu'un sait comment je peux faire pour que ça fonctionne?

ça c'est mon code:


<?php


// connexion
$conn = ocilogon("stexxxxx","XXXXXXX",$bdtest05);
// préparation du Select
$query="select a.fulfiller_firstname|| ' '||a.fulfiller_lastname
,b.request_type_name
,c.task_name
,c.task_start_date
,c.task_end_date
,d.request_wished_delivery_date
,e.client_firstname||' '||e.client_lastname
from fulfillers a
,request_types b
,tasks c
,requests d
,clients e
where c.task_fulfiller_id = a.fulfiller_id
and c.task_request_id = d.request_id
and d.request_request_type_id = b.request_type_id
and d.request_client_id = e.client_id;";

$ordre = OCIParse ($conn, $query);
OCIExecute ($ordre);
$ncols = OCINumCols($ordre);
// affiche les lignes tant qu'il y en a
// et les colonnes une par une
print "<TABLE BORDER=1> ";
print "<TR>";
print "<TD>Fulfiller</TD>";
print "<TD>Request Type</TD>";
print "<TD>Task Name</TD>";
print "<TD>Start Date</TD>";
print "<TD>End Date </TD>";
print "<TD>Expected Delivery date</TD>";
print "<TD>Client</TD>";

while (OCIFetchInto ($ordre, $ligne, OCI_NUM)) {
print "<TR> ";
for ( $i=0;$i < $ncols; $i++) {
print "<TD> $ligne[$i] </TD>" ;
}
print "</TR> ";
}// libere les ressources
OCIFreeCursor ($ordre);
OCILogoff($conn);
?>

1 réponse

Avatar
dmetzler
A mon avis, c'est plus une erreur Oracle qu'une erreur PHP (c'est
Oracle qui te renvoit l'erreur).

ORA-00911: invalid character
Cause: Special characters are valid only in certain places. If special
characters other than $, _, and # are used in a name and the name is
not enclosed in double quotation marks ("), this message will be
issued. One exception to this rule is for database names; in this case,
double quotes are stripped out and ignored.
Action: Remove the invalid character from the statement or enclose the
object name in double quotation marks.

Fais un print de ta query et testes ta requête en copiant/collant dans
sqlplus et dis nous si ça fonctionne...