Probleme procedure stockée DELETE oracle avec php
Bonjour,
je vous explique mon problème:
à l'heure actuelle je me sers de php pour inserer des données dans ma base de donnée or je souhaiterai simplement faire appel à une procédure stocké qui sera appelée avec php
bref mes variables que j'ai avec php sont:
$libellemat (varchar2), $id1 (number), $id2 (number), $id3 (number)
Code d'insertion php
Code:
1 2 3 4
|
$request="insert into pti.materiel (idmateriel,libellemat,idsalarie,idtypemateriel,idsystemeos) values('','$libellemat',$id1,$id2,$id3)";
$insert=ociparse($db_conn,$request);
ociexecute($insert); |
Donc j'ai remplacé ce code par l'appel de la procédure qui contient des erreurs à priori au niveau des ocibindbynames:
Code:
1 2 3 4 5 6 7
|
$stmt = OCIParse($db_conn, "BEGIN ajoutmateriel(:$libellemat, :$id1, :$id2, :$id3); END;");
OCIBindByName($stmt, ":$libellemat", &$libellemat, -1);
OCIBindByName($stmt, ":$id1", &$id1, -1);
OCIBindByName($stmt, ":$id2", &$id2, -1);
OCIBindByName($stmt, ":$id3", &$id3, -1);
OCIExecute($stmt); |
et voici le code de la procédure stockée
Code:
1 2 3 4 5 6 7 8 9
|
create or replace procedure "AJOUTMATERIEL" (libellemat IN VARCHAR2, id1 IN NUMBER,
id2 IN NUMBER,
id3 IN NUMBER)
is
begin
insert into pti.materiel (idmateriel,libellemat,idsalarie,idtypemateriel,idsystemeos) values('','libellemat',id1,id2,id3);
end; |
C'est la première fois que je crée une procédure stockée et je crois que je m'emmèle les pinceaux
ci joint les erreurs
Code:
1 2 3 4 5 6 7 8 9 10
|
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of ocibindbyname(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php on line 52
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of ocibindbyname(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php on line 53
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of ocibindbyname(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php on line 54
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of ocibindbyname(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php on line 55
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php:52) in c:\program files\easyphp1-8\www\intranet\traitementajoutmateriel1.php on line 2 |
Pouvez vous m'aider à créer correctement ma procédure et à corriger mon code php
merci
Probleme procedure stockée DELETE
bonjour,
j'essaye de faire une procédure de suppression mais il ne prend pas en compte le parametre envoyé par php dans la condition where
procedure:
Code:
1 2 3 4 5 6 7
|
create or replace procedure "SUPPRESSIONMATERIEL" (materiel IN VARCHAR2)
is
begin
delete from pti.materiel where libellemat=materiel;
commit;
end; |
Donc si je mets libellemat='materiel' il va essayer de supprimer le matériel "materiel" et non le matériel sélectionné à partir de ma liste déroulante de ma page php...
J'ai essayé '&materiel' mais ça ne marche pas
Comment régler mon problème? avec "materiel" en number ca serait facile car pas besoin de quote mais en varchar je ne vois pas comment faire
merci de votre aide