247 lines
7.7 KiB
PHP
247 lines
7.7 KiB
PHP
<?php
|
||
class clsMysql {
|
||
var $con;
|
||
var $last_id;
|
||
var $affected_rows;
|
||
|
||
function __construct($arrDatabase = array()) {
|
||
$this->con = mysqli_connect($arrDatabase['host'], $arrDatabase['user'], $arrDatabase['pass'], $arrDatabase['db'], '3306') or die ('Error connecting to MySQL');
|
||
mysqli_set_charset($this->con, "utf8") or die ("Error loading character set utf8: %s"); // change character set to utf8
|
||
//mysqli_select_db($this->con, $arrDatabase['db']) or die('Database ' . $arrDatabase['db'] . ' does not exist!');
|
||
}
|
||
|
||
function __destruct() {
|
||
mysqli_close($this->con);
|
||
}
|
||
|
||
// fonction qui ex<65>cute la requ<71>te SQL
|
||
function fxQuery($sql) {
|
||
$qry = mysqli_query($this->con, $sql);
|
||
$this->last_id = mysqli_insert_id($this->con);
|
||
$this->affected_rows = mysqli_affected_rows($this->con);
|
||
return $qry;
|
||
}
|
||
|
||
// fonction qui retourne la variable du r<>sultat de la requ<71>te SQL
|
||
function fxGetVar($sql) {
|
||
return $this->fxFetchArray(0, $sql);
|
||
}
|
||
|
||
// fonction qui retourne un tableau contenant la ligne unique du r<>sultat de la requ<71>te SQL
|
||
function fxGetRow($sql) {
|
||
return $this->fxFetchArray(1, $sql);
|
||
}
|
||
|
||
// fonction qui retourne un tableau contenant le r<>sultat de la requ<71>te SQL
|
||
function fxGetResults($sql) {
|
||
return $this->fxFetchArray(2, $sql);
|
||
}
|
||
function fxGetResultstest($sql) {
|
||
|
||
return $this->fxFetchArray(9, $sql);
|
||
}
|
||
// fonction qui retourne un tableau contenant le r<>sultat de la requ<71>te SQL avec le premier champ du SELECT comme index
|
||
function fxGetResultsKey($sql) {
|
||
return $this->fxFetchArray(3, $sql);
|
||
}
|
||
|
||
// fonction qui met la requ<71>te dans un tableau
|
||
function fxFetchArray($p, $sql) {
|
||
$qry = $this->fxQuery($sql);
|
||
|
||
if($qry === false)
|
||
echo('erreur ---------------------- <br>'.$sql.'<br>--------------------');
|
||
|
||
$nb = mysqli_num_rows($qry);
|
||
|
||
if ($nb > 0) {
|
||
switch ($p) {
|
||
// fxGetVar
|
||
case 0:
|
||
$rec = mysqli_fetch_row($qry);
|
||
$mem_results = $rec[0];
|
||
break;
|
||
|
||
// fxGetRow
|
||
case 1:
|
||
$rec = mysqli_fetch_assoc($qry);
|
||
|
||
foreach (array_keys($rec) as $field)
|
||
$mem_results[$field] = $rec[$field];
|
||
break;
|
||
|
||
// fxGetResults
|
||
case 2:
|
||
$ctr = 1;
|
||
|
||
while ($rec = mysqli_fetch_assoc($qry)) {
|
||
foreach (array_keys($rec) as $field)
|
||
$mem_results[$ctr][$field] = $rec[$field];
|
||
|
||
$ctr++;
|
||
}
|
||
break;
|
||
case 9:
|
||
$ctr = 1;
|
||
|
||
if ($qry && mysqli_num_rows($qry) > 0) { // Vérification que la requête renvoie des résultats
|
||
|
||
while ($rec = mysqli_fetch_assoc($qry)) {
|
||
|
||
if ($rec) { // Vérification que $rec n'est pas false
|
||
|
||
foreach (array_keys($rec) as $field) {
|
||
// Vérification que le champ existe dans $rec
|
||
if (isset($rec[$field]) ){
|
||
//echo("<br>"); echo("<br>"); echo($field); echo("<br>");
|
||
$mem_results[$ctr][$field]=$rec[$field];
|
||
}else{
|
||
$mem_results[$ctr][$field]="";
|
||
|
||
}
|
||
}
|
||
echo($ctr);echo("<br>");
|
||
// print_r($mem_results[$ctr]);
|
||
echo("<br>"); echo("<br>");
|
||
$ctr++;
|
||
|
||
}
|
||
}
|
||
echo("<br>"); echo("fin <br>");
|
||
}
|
||
|
||
break;
|
||
// fxGetResultsKey
|
||
case 3:
|
||
$ctr = 1;
|
||
|
||
while ($rec = mysqli_fetch_assoc($qry)) {
|
||
$mem_clef = array_keys($rec);
|
||
// $mem_clef = array_keys($rec, 0);
|
||
$counter = 1;
|
||
|
||
|
||
foreach (array_keys($rec) as $field) {
|
||
if ($counter != 1)
|
||
$mem_results[$rec[$mem_clef[0]]][$field] = $rec[$field];
|
||
|
||
$counter++;
|
||
}
|
||
}
|
||
break;
|
||
|
||
case 4:
|
||
$ctr = 1;
|
||
|
||
$x=1;
|
||
$mem_lastkey="";
|
||
while ($rec = mysqli_fetch_assoc($qry)) {
|
||
$mem_clef = array_keys($rec);
|
||
// $mem_clef = array_keys($rec, 0);
|
||
if($mem_lastkey!=$mem_clef)
|
||
{
|
||
$mem_lastkey= $mem_clef;
|
||
$x=1;
|
||
}else{$x=$x+1;}
|
||
|
||
|
||
$counter = 1;
|
||
$x=x+1;
|
||
|
||
foreach (array_keys($rec) as $field) {
|
||
if ($counter != 1)
|
||
$mem_results[$rec[$mem_clef[0]]][$field][$x] = $rec[$field];
|
||
|
||
$counter++;
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
}
|
||
|
||
return $mem_results;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
|
||
// fonction qui retourne les d<>tails des champs selon le SQL
|
||
function fxGetFields($sql) {
|
||
$qry = $this->fxQuery($sql);
|
||
$nb = mysqli_num_fields($qry);
|
||
|
||
if ($nb > 0) {
|
||
$intCtr = 0;
|
||
|
||
while ($intCtr < $nb) {
|
||
$rec = mysqli_fetch_field($qry, $intCtr);
|
||
|
||
foreach ($rec as $name => $value)
|
||
{
|
||
if ($name == 'name' || $name == 'numeric')
|
||
$mem_results[$intCtr + 1][$name] = $value;
|
||
}
|
||
|
||
$intCtr++;
|
||
}
|
||
|
||
return $mem_results;
|
||
}
|
||
else
|
||
return null;
|
||
}
|
||
|
||
//fonction pour <20>chapper les caract<63>res pour les variables post ou get
|
||
//param: valeur
|
||
//retourne la valeur <20>chapp<70>e
|
||
function fxEscape($values) {
|
||
if (is_array($values))
|
||
$values = array_map(array($this, 'fxEscape'), $values);
|
||
else {
|
||
// Stripslashes
|
||
// MSIN-CON-259
|
||
//if (get_magic_quotes_gpc())
|
||
// $values = stripslashes($values);
|
||
|
||
//if ((int)ini_get('magic_quotes_sybase'))
|
||
// $values = str_replace("''", "'", $values);
|
||
|
||
$values = str_replace('"', '"', $values);
|
||
$values = mysqli_real_escape_string($this->con, $values);
|
||
}
|
||
|
||
return $values;
|
||
}
|
||
|
||
function fxGetLastId() {
|
||
return $this->last_id;
|
||
}
|
||
function fxGetNbAffectedRows() {
|
||
return $this->affected_rows;
|
||
}
|
||
}
|
||
|
||
//fonction pour rescapper les caract<63>res pour les variables post ou get
|
||
//param: valeur ou tableau de valeurs, donn<6E>es html ?
|
||
//retourne la valeur rescapp<70>e
|
||
function fxUnescape($values, $intHtml = 0) {
|
||
if (is_array($values))
|
||
$values = array_map(array($this, 'fxUnescape'), $values);
|
||
else {
|
||
// Stripslashes
|
||
// MSIN-CON-259
|
||
//if (get_magic_quotes_gpc())
|
||
// $values = stripslashes($values);
|
||
|
||
if ($intHtml == 0)
|
||
$values = str_replace('"', '"', $values);
|
||
|
||
//if ((int)ini_get('magic_quotes_sybase'))
|
||
// $values = str_replace("''", "'", $values);
|
||
}
|
||
|
||
return $values;
|
||
} |