Fixed issue #95.

This commit is contained in:
Rooty 2021-12-13 12:46:19 +01:00
parent 165ded7cac
commit 534fb5409c
3 changed files with 47 additions and 203 deletions

View File

@ -326,12 +326,13 @@ function datasource($POST="")
{
$dbhost = (!empty($_POST['NameServeur'])) ? $_POST['NameServeur'] : 'localhost';
$dbuser = (!empty($_POST['LoginServeur'])) ? $_POST['LoginServeur']: "";
$dbport = (!empty($_POST['PortServeur'])) ? $_POST['PortServeur']: 3306;
$dbpasswd = (!empty($_POST['PwdServeur'])) ? $_POST['PwdServeur'] : "";
$dbname = (!empty($_POST['BdServeur'])) ? $_POST['BdServeur']: "";
$dbnameprefx = (!empty($_POST['PrefxBdServeur'])) ? $_POST['PrefxBdServeur']: "";
try {
$bd_connect = new PDO("mysql:host=$dbhost", "$dbuser", "$dbpasswd"); // PDO Connection
$bd_connect = new PDO("mysql:host=$dbhost;port=$dbport", "$dbuser", "$dbpasswd"); // PDO Connection
} catch (PDOException $e) {
// $e->getCode = 1045 = Access denied
// $e->getCode = 1049 = Unknown database
@ -340,7 +341,7 @@ function datasource($POST="")
$dbselect = true;
try {
$bd_connect = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", "$dbuser", "$dbpasswd"); // PDO Connection
$bd_connect = new PDO("mysql:host=$dbhost;port=$dbport;dbname=$dbname;charset=utf8", "$dbuser", "$dbpasswd"); // PDO Connection
} catch (PDOException $e) {
// $e->getCode = 1049 = Unknown database
if( $e->getCode() == '1049' ) $dbselect = false;
@ -470,6 +471,7 @@ function datasource($POST="")
// On met à jour le fichier config.data_source.php
if ( updateStringInFile(array( "{_DBCONNECTOR_}"=>"mysql",
"{_DBHOST_}"=>$dbhost,
"{_DBPORT_}"=>$dbport,
"{_DBUSER_}"=>$dbuser,
"{_DBPASSWD_}"=>$dbpasswd,
"{_DBNAME_}"=>$dbname,

View File

@ -244,7 +244,7 @@ class MysqlBackUpDb extends CommonBackupDb
// mysql_select_db($db, $connect);
$dbselect = true;
try {
$bd_connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8", "$login", "$password"); // PDO Connection
$bd_connect = new PDO("mysql:host=$host;port=$port;dbname=$db;charset=utf8", "$login", "$password"); // PDO Connection
} catch (PDOException $e) {
// $e->getCode = 1049 = Unknown database
if( $e->getCode() == '1049' ) $dbselect = false;

View File

@ -13,32 +13,22 @@
* fitness for a particular purpose. Please
* read the file LICENCE.
*
* mysql5.php
* -------------------
* begin : Saturday, Feb 13, 2001
* copyright : (C) 2001 The phpBB Group
* email : supportphpbb.com
*
* $Id: mysql5.php,v 1.3 2006/10/10 21:38:55 tristan Exp $
*
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
*
*Fichier mysql5.php
*Fichier mypdo.php
*
*Ce fichier contient la classe d'accès aux données pour MYSQL 5
*Ce fichier contient la classe d'accès aux données pour MYSQL
*
* @author The phpBB Group
* @since 2018/03/19
* @version 1.16
* @link http://www.phpbb.com
* @author Rooty <rooty@rooty.me>
* @since 2021/12/13
* @version 0.1
* @link www.qware.fr
* @package system_data_source
* @subpackage database
* @modify by Initiance <www.initiance.com|olivier@initiance.com>
*
*/
@ -112,61 +102,33 @@ class mypdo extends Database
*<p>Initialise la connection a la base de données MySQL 5</p>
*
* @param chaine Nom de l'hote MySQL
* @param chaine Port de l'hote MySQL
* @param chaine Nom d'utilisateur
* @param chaine Mot de passe de connection
* @param chaine Nom de la base a utiliser
* @param booléen Connection persistante
*/
function mypdo($dbtype, $host, $user, $password, $database, $charset, $persistency = true)
function mypdo($dbtype, $host, $port, $user, $password, $database, $charset, $persistency = true)
{
$this->__construct($dbtype, $server, $user, $password, $database, $charset, $persistency);
$this->__construct($dbtype, $server, $port, $user, $password, $database, $charset, $persistency);
}
function __construct($dbtype, $server, $user, $password, $database, $charset, $persistency = true)
function __construct($dbtype, $server, $port, $user, $password, $database, $charset, $persistency = true)
{
$this->persistency = $persistency;
$this->dbtype = $dbtype;
$this->user = $user;
$this->password = $password;
$this->server = $server;
$this->port = $port;
$this->dbname = $database;
$this->dbcharset = $charset;
try {
$this->db_connect = new PDO("$this->dbtype:host=$this->server;dbname=$this->dbname;charset=$this->dbcharset", "$this->user", "$this->password"); // PDO Connection
// echo 'Connexion réussie : '.$this->db_connect."<br>";
// return $this->db_connect;
$this->db_connect = new PDO("$this->dbtype:host=$this->server;port=$this->dbport;dbname=$this->dbname;charset=$this->dbcharset", "$this->user", "$this->password"); // PDO Connection
} catch (PDOException $e) {
// echo 'Connexion échouée : ' . $e->getMessage();
return false;
}
// if($this->persistency)
// {
// $this->db_connect_id = @mysql_pconnect($this->server, $this->user, $this->password);
// }
// else
// {
// $this->db_connect_id = @mysql_connect($this->server, $this->user, $this->password);
// }
// if($this->db_connect_id)
// {
// if($database != "")
// {
// $this->dbname = $database;
// $dbselect = @mysql_select_db($this->dbname);
// if(!$dbselect)
// {
// @mysql_close($this->db_connect_id);
// $this->db_connect_id = $dbselect;
// }
// }
// return $this->db_connect_id;
// }
// else
// {
// return false;
// }
}
function prepare($sql)
@ -180,9 +142,9 @@ class mypdo extends Database
}
/**
*fermeture de connection
* Fermeture de connection
*
* fonction qui ferme la connection a la base mysql
* Fonction qui ferme la connection a la base mysql
*
* @return booléen
*/
@ -197,30 +159,16 @@ class mypdo extends Database
{
return false;
}
// if($this->db_connect)
// {
// if(isset($this->query_result))
// {
// @mysql_free_result($this->query_result);
// }
// $result = @mysql_close($this->db_connect);
// return $result;
// }
// else
// {
// return false;
// }
}
//
// Base query method
//
//
// Base query method
//
/**
*fonction de requete SQL
* Fonction de requete SQL
*
* permet de faire une requete sur la connection mySQL ouverte
* Permet de faire une requete sur la connection mySQL ouverte
*
* @param chaine Requete SQL
* @param booléen inutilisé dans ce cas
@ -230,15 +178,10 @@ class mypdo extends Database
function sql_query($query = "", $data=false, $transaction = FALSE)
{
$query=Database::rewriteQuery($query);
//echo $query."<br>";
$GLOBALS["SYSTEM_NB_QUERY"]=(isset($GLOBALS["SYSTEM_NB_QUERY"]))?$GLOBALS["SYSTEM_NB_QUERY"]+1:1;
// Remove any pre-existing queries
// unset($this->query_result);
if($query != "")
{
$this->num_queries++;
// $this->query_result = $this->db_connect->query($query);
$this->query_result = $this->db_connect->prepare($query);
if( !$data )
$this->query_result->execute();
@ -246,69 +189,31 @@ class mypdo extends Database
$this->query_result->execute($data);
}
if(isset($this->query_result))
// if (!$this->query_result = $this->db_connect->query($query))
{
// unset($this->row[$this->query_result]);
// unset($this->rowset[$this->query_result]);
return $this->query_result;
}
else
{
return ( $transaction == END_TRANSACTION ) ? true : false;
}
// unset($this->query_result);
// if($query != "")
// {
// $this->num_queries++;
//
// $this->query_result = @mysql_query($query, $this->db_connect_id);
// }
// if(isset($this->query_result))
// {
// unset($this->row[$this->query_result]);
// unset($this->rowset[$this->query_result]);
// return $this->query_result;
// }
// else
// {
// return @( $transaction == END_TRANSACTION ) ? true : false;
// }
}
/**
*Nombre de resultats retournés
* Nombre de resultats retournés
*
*permet de récuperer le nombre de lignes retournées lors de la dernière requête effectuée.
* Permet de récuperer le nombre de lignes retournées lors de la dernière requête effectuée.
*
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
* @return entier nombre de résultats
*/
function sql_numrows($query_id = 0)
{
// if(!$query_id)
// {
// $query_id = $this->query_result;
// }
// if($query_id)
// {
// // $result = mysql_num_rows($query_id);
// // echo $query_id->num_rows;
// return $query_id->num_rows;
// }
// else
// {
// return false;
// }
if(!$query_id)
{
$query_id = $this->query_result;
}
if($query_id)
{
// $result = @mysql_num_rows($query_id);
// $result = $this->query_result->rowCount();
return $query_id->rowCount();
}
else
@ -318,9 +223,9 @@ class mypdo extends Database
}
/**
*Nombre d'enregistrements modifiés
* Nombre d'enregistrements modifiés
*
* retourne le nombre d'enregistrements affectés par la derniere requete.
* Retourne le nombre d'enregistrements affectés par la derniere requete.
*
* @return entier nombre d'enregistrements modifiés
*/
@ -328,11 +233,7 @@ class mypdo extends Database
{
if($this->query_result)
{
// $result = @mysql_affected_rows($this->db_connect);
$result = $this->query_result->rowCount();
// var_dump("Result :");
// var_dump($result);
return $result;
}
else
@ -342,14 +243,13 @@ class mypdo extends Database
}
/**
*Nombre de champs
* Nombre de champs
*
* retourne le nombre de champs de la derniere requete effectuée
* Retourne le nombre de champs de la derniere requete effectuée
*
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
* @return entier nombre de champs
*/
function sql_numfields($query_id = 0)
{
if(!$query_id)
@ -368,9 +268,9 @@ class mypdo extends Database
}
/**
*Nom d'un champ
* Nom d'un champ
*
* retourne le nom du champ placé a offset
* Retourne le nom du champ placé a offset
*
* @param entier emplacement du champ
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
@ -394,9 +294,9 @@ class mypdo extends Database
}
/**
*Type d'un champ
* Type d'un champ
*
* retourne le type du champ placé a offset
* Retourne le type du champ placé a offset
*
* @param entier emplacement du champ
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
@ -420,9 +320,9 @@ class mypdo extends Database
}
/**
*Obtenir un résultat
* Obtenir un résultat
*
* retourne l'enregistrement courant sous forme de tableau
* Retourne l'enregistrement courant sous forme de tableau
*
* @param entier facultatif) identifiant de requete , utilise la dernière requete par defaut
* @return tableau tableau contenant les différents champs
@ -438,19 +338,17 @@ class mypdo extends Database
if($query_id)
{
$query_id->setFetchMode(PDO::FETCH_BOTH);// Mode par défaut (tableau)
// var_dump($query_id);
// $this->row[$query_id] = @mysql_fetch_array($query_id);
$this->row = $query_id->fetch();
// var_dump($this->row);
return $this->row;
}else{
return false;
}
}
/**
*Obtenir tous les résultats
* Obtenir tous les résultats
*
* retourne tous les enregistrements courants (derniere requete effectuée) sous forme de tableau
* Retourne tous les enregistrements courants (derniere requete effectuée) sous forme de tableau
*
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
* @return tableau_2D tableau à deux dimensions contant tous les enregistrement
@ -464,9 +362,6 @@ class mypdo extends Database
if($query_id)
{
$query_id->setFetchMode(PDO::FETCH_BOTH);// Mode par défaut (tableau)
// unset($this->rowset[$query_id]);
// unset($this->row[$query_id]);
// while($this->rowset[$query_id] = @mysql_fetch_array($query_id))
while($this->rowset = $query_id->fetch())
{
$result[] = $this->rowset;
@ -477,11 +372,10 @@ class mypdo extends Database
}
}
/**
*Obtenir un champ particulier d'un resultat
* Obtenir un champ particulier d'un resultat
*
* retourne un champ déterminé d'un enregistrement déterminé .
* Retourne un champ déterminé d'un enregistrement déterminé .
*
* @param entier (ou chaine) champ a renvoyer
* @param entier (facultatif) identifiant de l'enregistrement (dernier par defaut)
@ -529,11 +423,10 @@ class mypdo extends Database
}
}
/**
*Déplacement de pointeur de résultat
* Déplacement de pointeur de résultat
*
* permet de déplacer le pointeur de résultat.
* Permet de déplacer le pointeur de résultat.
*
* @param entier ligne
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
@ -556,9 +449,9 @@ class mypdo extends Database
}
/**
*Identifiant d'insertion
* Identifiant d'insertion
*
* permet d'obtenir l'identifiant d'insertion (Requete INSERT)
* Permet d'obtenir l'identifiant d'insertion (Requete INSERT)
*
* @return entier identifiant
*
@ -566,7 +459,6 @@ class mypdo extends Database
function sql_nextid(){
if($this->db_connect)
{
// $result = @mysql_insert_id($this->db_connect);
$result = $this->db_connect->lastInsertId();
return $result;
}
@ -577,67 +469,17 @@ class mypdo extends Database
}
/**
*Liberer l'espace mémoire
* Fonction d'erreur
*
* permet de liberer la memoire occupée par le pointeur de résultat
*
* @param entier (facultatif) identifiant de requete , utilise la dernière requete par defaut
* @return booléen effectué avec succès
*/
// function sql_freeresult($query_id = 0){
// /* renvoi une erreur auto */
// // if( !$query_id )
// // {
// // $query_id = $this->query_result;
// // }
// //
// // if ( $query_id )
// // {
// // // unset($this->row[$query_id]);
// // // unset($this->rowset[$query_id]);
// // // mysql_free_result($query_id);
// // $this->query_result->free_result();
// // return true;
// // }
// // else
// // {
// // return false;
// // }
//
// if(!$query_id)
// {
// $query_id = $this->query_result;
// }
//
// if ( $query_id )
// {
// // unset($this->row[$query_id]);
// // unset($this->rowset[$query_id]);
//
// // @mysql_free_result($query_id);
// $this->query_result->free_result();
//
// return true;
// }else{
// return false;
// }
// }
/**
*Fonction d'erreur
*
* retourne un tableau contenant le numero et le message d'erreur
* Retourne un tableau contenant le numero et le message d'erreur
*
* @return tableau contenant les index ['message'] et ['code']
*/
function sql_error($query_id = 0)
{
$result["message"] = @mysql_error($this->db_connect);
$result["code"] = @mysql_errno($this->db_connect);
return $result;
}
}
?>