On trouvera ici des exemples simples d'utilisation des extensions Oracle de PHP, et plus particulièrement des fonctions OCI*.
Un exemple de formulaire HTML de test de connexion Oracle / php qui appelle test_connect1.php et test_connect2.php
Cet exemple fonctionne
avec ou sans résolution de nom de base, dans ce dernier cas ça
évite de configurer le client Oracle Net qui pourrait vous donner du
fil à retordre ;-) )
SELECT générique qui affiche une table quelconque passée en paramètre dans un tableau HTML
<?php
// select_generique.php
// parametres d'entree :
// $user : le nom du compte oracle ou l'on se connecte
// $mdp : son mot de passe
// $bd : le nom du serveur de données (la base) Oracle
// $table : le nom de la table à afficher
//
// usage : http://mon_serveur/rep_php/select_generique.php
// recuperation des parametres
$user = $_GET['user'];
$mdp= $_GET['mdp'];
$bd = $_GET['base'];
$table = $_GET['table'];
if (($user=='') or ($mdp=='') or ($base =='') or ($table==''))
{ print "Vous avez oublié un parmètre lors de l'appel !!!<BR>";
print "user, mot de passe, nom de base et nom de table sont nécessaires.<BR>";
print "exemple correct: http://mon_serveur/rep_php/select_generique.php?";
print "user=scott&mdp=tiger&base=test&table=emp";
exit(0);
}
// connexion
$conn = ocilogon($user,$mdp,$base);
// préparation du Select
$sql1 = "SELECT * FROM $table ";
$ordre = OCIParse ($conn, $sql1);
OCIExecute ($ordre);
$ncols = OCINumCols($ordre);
// affiche les lignes tant qu'il y en a
// et les colonnes une par une
print "<TABLE BORDER=1> ";
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);
?>
ça donne ça :
on peut mettre un peu de style (c'est la .class ! ;-)
on modifie 1 ligne de code : on ajoute en entête la référence
à la feuille de style gris.css,
de la manière suivante entre les balises <HEAD> et </HEAD>
<link href="../gris.css" rel="stylesheet" type="text/css">
et on utilise 3 classes pour le tableau et une pour le titre, le code devient
ça :
et à l'écran cé boucou + joli :
Attention, le COMMIT
est automatique en cas de succès (OCI_COMMIT_ON_SUCCESS par défaut).
Si vous souhaitez commiter manuellement, mettez OCI_DEFAULT comme mode d'exécution
: OCIExecute ($ordre, OCI_DEFAULT) et quand vous le désirez validez la
transaction par OCI_COMMIT()
Pour des exemples plus sophistiqués :
consultation, formulaire de création et de mise à jour, voir mon
interface Ze cow, by DD
|