1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| <?php
// Classe accès à une base de données Oracle
class DB {
//--------------------------------------------------------------
//Déclaration des variables de classe
//--------------------------------------------------------------
var $BASE;
var $USER;
var $MOTDEPASSE;
var $CONNECT;
var $REQS;
var $error;
var $errMsg;
var $PARSE;
var $TNSNAME;
var $POINTEUR;
var $TABLEAU;
//--------------------------------------------------------------
//Initialisation des variables
//--------------------------------------------------------------
function DB($USER,$MOTDEPASSE) {
$this->BASE= BASE;
$this->USER = $USER;
$this->MOTDEPASSE = $MOTDEPASSE;
$this->TNSNAME = TNSNAME;
//Connection au serveur de base de données Oracle
$this->CONNECT = ocilogon($this->USER, $this->MOTDEPASSE,$this->BASE);
if (!$this->CONNECT) {
$this->error = true;
$this->errMsg = "Connection impossible";
// Sélection de la base de données
}
$this->POINTEUR = ocinewcursor($this->CONNECT);
if(!$this->POINTEUR) {
$this->error = true;
$this->errMsg = "Ouverture du pointeur impossible";
}
}
//--------------------------------------------------------------
// Déconnexion
//--------------------------------------------------------------
function deconnexion() {
$this->CONNECT = ocilogoff($this->POINTEUR);
}
//--------------------------------------------------------------
// Execution d'une requete
//--------------------------------------------------------------
function execRequete($sql) {
$this->PARSE = ociparse($this->CONNECT,$sql);
if(!$this->PARSE) {
$this->error = true;
$this->errMsg = "<B>Requête non valide</B> [<i>$sql</i>]: ".ocierror()." ";
} else {
$this->REQS = ociexecute($this->PARSE);
if (!$this->REQS) {
$this->error = true;
$this->errMsg = "<B>Requête impossible</B> [<i>$sql</i>]: ".ocierror()." ";
}
return $this->REQS;
}
ocicommit($this->CONNECT);
}
//--------------------------------------------------------------
// renvoie le nombre de lignes
//--------------------------------------------------------------
function requete_count_row($table, $clause="") {
$sql = 'SELECT COUNT(*) AS NB FROM '.$table.' '.$clause.'';
// echo $sql.'<br /><br />';
$this->execRequete($sql);
ocifetchinto($this->PARSE, $ligne, OCI_ASSOC);
return $ligne['NB'];
}
//--------------------------------------------------------------
// renvoie le nombre de lignes
//--------------------------------------------------------------
function requete_nb_Ligne($clause="") {
$sql = 'SELECT COUNT(*) AS NB '.$clause.' ';
//echo '<br>'.$sql.'<br>';
$this->execRequete($sql);
ocifetchinto($this->PARSE, $ligne, OCI_ASSOC);
//echo "--".$ligne['NB']."--";
return $ligne['NB'];
}
//--------------------------------------------------------------
//Traitement de la requete
//--------------------------------------------------------------
function requete_fetch_array() {
//nombre de champs
$nb_champs = ocinumcols($this->PARSE);
$this->TABLEAU = array();
ocifetchinto($this->PARSE, $ligne, OCI_ASSOC);
for ($i=1;$i<=$nb_champs;$i++) {
$this->TABLEAU[ocicolumnname($this->PARSE,$i)] = $ligne[ocicolumnname($this->PARSE,$i)];
}
return $this->TABLEAU;
}
//--------------------------------------------------------------
//Renvoie le nombre de champs
//--------------------------------------------------------------
function requete_nb_cols($sql) {
$this->PARSE = ociparse($this->CONNECT,$sql);
if(!$this->PARSE) {
$this->error = true;
$this->errMsg = "<B>Requête impossible</B> [<i>$sql</i>]: ".mysql_error()." ";
} else {
echo ocinumcols($this->PARSE);
}
}
}
?> |
Partager