Petit nouveau ! |
3 Messages
27 juil. 2015, 12:37
Je ne comprends pas forcément comment modifier ces lignes à l'aide du lien, j'ai fait quelques tentatives mais en vain.
Voici le fichier complet, si ça peut aider
<?php
class SystemDBMysql extends SystemObject {
// Variables
// MySQL server configuration
private $host;
private $user;
private $password;
private $dbname;
private $prefix;
// Connection link
private $link;
private $query;
private $connected;
private $nbqueries;
// Db Struct
private $dbStruct;
private $results;
//! Constructor
public function __construct(&$core,$host,$user,$password,$dbname) {
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->dbname = $dbname;
$this->connected = false;
$this->nbqueries = 0;
parent::__construct($core);
}
public function getDBName () {
return $this->dbname;
}
//! Connect to the MySQL server
public function connect() {
$this->link = ($GLOBALS["___mysqli_ston"] = mysqli_connect($this->host, $this->user, $this->password));
if (!$this->link)
throw new Exception("Cannot connect to the database.");
$this->selectDB($this->dbname);
$this->connected = true;
}
public function selectDB ($dbname) {
if (!((bool)mysqli_query($this->link, "USE " . $dbname)))
throw new Exception("This database ($dbname) doesn't exist.");
}
public function getVersion () {
if (!$this->connected)
$this->connect();
return ((is_null($___mysqli_res = mysqli_get_server_info($this->link))) ? false : $___mysqli_res);
}
//! Disconnect from the MySQL server
public function disconnect() {
if (!@((is_null($___mysqli_res = mysqli_close($this->link))) ? false : $___mysqli_res))
throw new Exception("Problem in MySQL disconnect.");
}
//! Return truc if connected
public function isConnected() {
return $this->connected;
}
//! Create a MySQL query Builder
public function createQueryBuilder() {
include_once(ROOT."library/system/System.DBSqlbuilder.php");
$qb = new SystemDBSqlbuilder($this->core, $this->prefix);
$qb->setDBStruct($this->dbStruct);
return $qb;
}
public function setDBStruct ($dbStruct) {
$this->dbStruct = $dbStruct;
}
//! Return the number of executed queries
public function nbQueries() {
return $this->nbqueries;
}
private $microtime;
public function getMicroTime () {
return $this->microtime;
}
public function addMicroTime ($mc) {
if(!isset($this->microtime))
$this->microtime = 0;
$this->microtime += $mc;
//debug('total queries ms ' . ($this->microtime * 1000));
}
//! Execute a query
public function execQuery($query) {
if (!$this->connected)
$this->connect();
$this->nbqueries++;
$this->core->debug->log($query,"sql");
$mc = microtime();
$this->results = mysqli_query($GLOBALS["___mysqli_ston"], $query);
$this->addMicroTime(microtime() - $mc);
return $this->results;
}
public function getError () {
return ((is_object($this->link)) ? mysqli_error($this->link) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false));
}
//! Execute a delete query
public function execDelete($builder) {
$this->query = $builder->createDelete();
$this->results = $this->execQuery($this->query,$this->link);
if (!$this->results)
throw new Exception("MySQL error, can't execute Delete query.<br />".$this->query."<br /><br /><strong>".((is_object($this->link)) ? mysqli_error($this->link) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))."</strong>");
else
return $this->results;
}
//! Execute a select query
public function execSelect($builder) {
$this->query = $builder->createSelect();
$this->results = $this->execQuery($this->query,$this->link);
if (!$this->results)
throw new Exception("MySQL error, can't execute Select query.<br />".$this->query."<br /><br /><strong>".((is_object($this->link)) ? mysqli_error($this->link) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))."</strong>");
else
return $this->results;
}
//! Execute a insert query
public function execInsert($builder) {
$this->query = $builder->createInsert();
$this->results = $this->execQuery($this->query,$this->link);
if (!$this->results)
throw new Exception("MySQL error, can't execute Insert query.<br />".$this->query."<br /><br /><strong>".((is_object($this->link)) ? mysqli_error($this->link) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))."</strong>");
else
return $this->results;
}
//! Execute a update query
public function execUpdate($builder) {
$this->query = $builder->createUpdate();
$this->results = $this->execQuery($this->query,$this->link);
if (!$this->results)
throw new Exception("MySQL error, can't execute Update query.<br />".$this->query."<br /><br /><strong>".((is_object($this->link)) ? mysqli_error($this->link) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false))."</strong>");
else
return $this->results;
}
//! Escape for database
public function escape($str) {
$str = trim($str);
$str = addslashes($str);
return $str;
}
//! Get a row of results
public function getRow($results="") {
if (!$results)
$results = $this->results;
return mysqli_fetch_row($results);
}
//! Get a row of results
public function fetchRow($results="") {
if (!$results)
$results = $this->results;
if(!$results)
return null;
return mysqli_fetch_assoc($results);
}
public function fetchObject ($results="") {
if (!$results)
$results = $this->results;
return mysqli_fetch_object($results);
}
//! Get the id of the Insert query
public function insertId() {
return ((is_null($___mysqli_res = mysqli_insert_id($this->link))) ? false : $___mysqli_res);
}
//! Get the number of rows
public function numRows($results="") {
if (!$results)
$results = $this->results;
if(!$results) return 0;
return mysqli_num_rows($results);
}
public function numFields ($results="") {
if (!$results)
$results = $this->results;
if(!$results) return 0;
return (($___mysqli_tmp = mysqli_num_fields($results)) ? $___mysqli_tmp : false);
}
//! Set prefix to tables
public function setPrefix($prefix) {
$this->prefix = $prefix;
}
public function getPrefix () {
return $this->prefix;
}
}
?>
Encore merci