-------------------------------------------------------------------------------- ex_mpphp.txt -------------------------------------------------------------------------------- ex_mpphp.sql -------------------------------------------------------------------------------- create table produit ( nom varchar2(20), prix int, qte int ); create or replace procedure p( x int, y out int) is begin y:=x+1; end; / create or replace function f( x int) return integer is begin return x+1; end; / create or replace procedure q( x varchar2, y out varchar2) is begin y:=x||' : OK '; end; /

Entreprise Aux p'tits cours

Bienvenue ! Vous ne serez pas déçus
Tout, tout, tout, vous saurez tout sur...
Insertion d'un produit :
"; $c = ocilogon('c##ewaller_a', 'ewaller_a', 'dbinfo'); $texte = "insert into produit values(". "'".$nom."', ".$prix.", ".$qte.")"; echo "(debug : ".$texte. " : copié-collable sous SQL*Plus sans ; )
"; $ordre = ociparse($c, $texte); ociexecute($ordre); ocilogoff($c); ?>

Entreprise Aux p'tits cours

Insertion d'un produit :
"; $c = ocilogon('c##ewaller_a', 'ewaller_a', 'dbinfo'); // erreur 1 : erreur login /* gestion basique : if (!$c) { echo "Echec connection, j'arrete !
"; return; } */ // erreur 2 : retirer quotes varchar2 dans insert : $texte = "insert into produit values(". "'".$nom."', ". // $nom.", ". $prix.", ".$qte.")"; echo "(debug : ".$texte. " : copié-collable sous SQL*Plus sans ; )
"; $ordre = ociparse($c, $texte); ociexecute($ordre); ocilogoff($c); ?>

Entreprise Aux p'tits cours

Affichage produits prix inferieur ou egal a : "; $c = ocilogon('c##ewaller_a', 'ewaller_a', 'dbinfo'); $texte = "select nom, prix ". "from produit ". "where prix <= ".$prix; echo "(debug : ".$texte.")
"; $ordre = ociparse($c, $texte); ociexecute($ordre); while(ocifetchinto($ordre, $ligne)) echo $ligne[0].",".$ligne[1]."
"; ocilogoff($c); // comparer structure programme avec ex_mpphp1.php (insert) // comparer avec structure curseur en PL/SQL ?> "; $c = ocilogon('c##ewaller_a', 'ewaller_a', 'dbinfo'); $texte="begin :1 := f(".$x."); end;"; // rappel: bloc éphémère PL/SQL finit par ; // appel de procédure : une seule ligne différente : // $texte="begin p(".$x.", :1); end;"; echo "(debug : ".$texte.")
"; $ordre = ociparse($c, $texte); ocibindbyname($ordre, ':1', $z); ociexecute($ordre); echo "valeur renvoyée par f : ".$z."
"; // valeur retour est un varchar2 : // il faut régler taille du buffer d'accueil selon valeur $s = 'lulu'; $texte="begin q('".$s."',:1); end;"; // rappel : quotes... echo "(debug : ".$texte.")
"; $ordre=ociparse($c, $texte); ocibindbyname($ordre, ':1', $z, 100); // 100 octets ; regler selon taille chaine retour ociexecute($ordre); echo "valeur renvoyée par q : ".$z."
"; ocilogoff($c); ?>