Files
ms1inscription-v5/php/inc_mysql.php
2026-05-13 09:43:32 -04:00

247 lines
7.7 KiB
PHP
Raw Blame History

<?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('&quot;', '"', $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('"', '&quot;', $values);
//if ((int)ini_get('magic_quotes_sybase'))
// $values = str_replace("''", "'", $values);
}
return $values;
}