linea21-core
[ class tree: linea21-core ] [ index: linea21-core ] [ all elements ]

Source for file class.mysql.php

Documentation is available at class.mysql.php

  1. <?php
  2. /**
  3.  * @package linea21.core
  4.  * @subpackage system
  5.  * @author linea21 <info@linea21.com>
  6.  * @version $id SVN
  7.  * @access public
  8.  * @license http://opensource.org/licenses/gpl-3.0.html
  9.  *  MySQL data manipulation
  10.  */
  11.  
  12. class mysql {
  13.   /*
  14.    * @parameters
  15.    */
  16.   var $DB_HOST = DB_HOST;
  17.   var $DB_USER = DB_USER;
  18.   var $DB_PASS = DB_PASS;
  19.   var $DB_NAME = DB_NAME;
  20.   var $DB_LINK = "";
  21.   var $DB_ADMINMAIL = DB_ADMINMAIL;
  22.   var $RESULT;
  23.  
  24.   /**
  25.    * mysql::DBInitialise()
  26.    * Initialisation de la connexion
  27.    *
  28.    * @access public
  29.    * @param string $user : utilisateur base de données
  30.    * @param string $pass : password utilisateur base de données
  31.    * @param string $serveur : serveur de base de données
  32.    * @param string $bdd : nom de la base de données
  33.    * @return boolean 
  34.    */
  35.  
  36.   function DBInitialise($user ''$pass ''$serveur ''$bdd '')
  37.   {
  38.     if ($user != ''{
  39.       $this->DB_USER = $user;
  40.     }
  41.     if ($pass != ''{
  42.       $this->DB_PASS = $pass;
  43.     }
  44.     if ($serveur != ''{
  45.       $this->DB_HOST = $serveur;
  46.     }
  47.     if ($bdd != ''{
  48.       $this->DB_NAME = $bdd;
  49.     }
  50.     return true;
  51.   }
  52.  
  53.   /**
  54.    * mysql::DBConnexion()
  55.    * connexion Base de données
  56.    *
  57.    * @access public
  58.    * @param none 
  59.    * @return boolean 
  60.    */
  61.  
  62.   function DBConnexion()
  63.   {
  64.     $this->DB_LINK = @mysql_connect($this->DB_HOST$this->DB_USER$this->DB_PASSor die($this->DBError($GLOBALS['lang']['divers']['sql_connect_failed']));
  65.     $this->DBSelectDB();
  66.     if(strtolower(CHARSET== 'utf-8'$this->DBQuery("SET NAMES UTF8");
  67.     return true;
  68.   }
  69.  
  70.   /**
  71.    * mysql::DBSelectDB()
  72.    * Sélection de la Base de données
  73.    *
  74.    * @access public
  75.    * @param none 
  76.    * @return boolean 
  77.    */
  78.  
  79.   function DBSelectDB()
  80.   {
  81.     mysql_select_db($this->DB_NAME$this->DB_LINKor die($this->DBError($GLOBALS['lang']['divers']['db_connect_failed']));
  82.     return true;
  83.   }
  84.  
  85.   /**
  86.    * mysql::DBError()
  87.    * Gestion des erreurs MySQL
  88.    *
  89.    * @access private
  90.    * @param string $message_err : message retourné par la requête
  91.    * @param string $requete : requête provoquant l'erreur
  92.    * @return boolean 
  93.    */
  94.   function DBError($message_err$requete = -1)
  95.   {
  96.     $erreur $message_err "<br />[<em> error n° " @mysql_errno(" : " @mysql_error("</em> ]<br />\n\n";
  97.     if ($requete != -1{
  98.       $this->_logDbError($requete);
  99.       $erreur .= "SQL query : $requete<br />\n";
  100.     }
  101.     $date date("[D d/M/y H:i:s]<br />\n");
  102.     $erreur .= $date;
  103.     $erreur .= "running script :" $_SERVER["SCRIPT_NAME"getHttpParameters()"<br />";
  104.     if(defined('MOD_DEBUG'&& MOD_DEBUG == true{
  105.       echo $erreur;
  106.     }
  107.     if ($this->DB_ADMINMAIL != -1@error_log ($erreur1$this->DB_ADMINMAIL);
  108.   }
  109.  
  110.   /**
  111.    * mysql::DBInsert()
  112.    * Insertion de données dans la BDD
  113.    *
  114.    * @access public
  115.    * @param string $requete : requête SQL
  116.    * @param string $returnid : Si $returnid==1 ==> renvoie last_id()
  117.    * @return integer || boolean : $result last_id()
  118.    */
  119.  
  120.   function DBInsert ($requete$returnid = -1)
  121.   {
  122.     if (!($this->RESULT = $this->DBQuery($requete))) return false;
  123.     // Si returnid=1 on renvoie l'id de l'enregistrement
  124.     // A utiliser uniquement si attribut auto_increment
  125.     if ($returnid == 1{
  126.       if (!(mysql_insert_id())) {
  127.         $requete "SELECT LAST_INSERT_ID() as last_id";
  128.         $res $this->DBQuery($requete);
  129.       else {
  130.         $res mysql_insert_id();
  131.       }
  132.     else {
  133.       $res true;
  134.     }
  135.     return $res;
  136.   }
  137.  
  138.   /**
  139.    * mysql::DBQuery()
  140.    * effectue une requête en tous genres -UPDATE - DELETE - SELECT
  141.    *
  142.    * @access public
  143.    * @param string $requete : requête SQL
  144.    * @return boolean : $result
  145.    */
  146.   function DBQuery ($requete)
  147.   {
  148.     if(defined('MOD_DEBUG'&& MOD_DEBUG == true{
  149.       $this->_logDbQuery($requete);
  150.     }
  151.     $this->RESULT = mysql_query($requete$this->DB_LINKor die($this->DbError($GLOBALS['lang']['divers']['sql_query_failed']$requete));
  152.  
  153.     return $this->RESULT;
  154.   }
  155.  
  156.   /**
  157.    * mysql::DBSelect()
  158.    * Requêtes - SELECT
  159.    *
  160.    * @access public
  161.    * @param string $requete : requête SQL
  162.    * @param string $fetch : renvoie des données, valeur ASSOC (default), ARRAY, OBJECT
  163.    * @return array : $result
  164.    */
  165.  
  166.   function DBSelect ($requete$fetch 'ASSOC')
  167.   {
  168.     if(defined('MOD_DEBUG'&& MOD_DEBUG == true{
  169.       $this->_logDbQuery($requete);
  170.     }
  171.     if (!($this->RESULT = $this->DBQuery($requete))) {
  172.       @mysql_free_result($this->RESULT);
  173.       return false;
  174.     }
  175.     if ($fetch == 'ARRAY'{
  176.       $i 0;
  177.       while ($data @mysql_fetch_array($this->RESULT)) {
  178.         $table[$i$data;
  179.         $i++;
  180.       }
  181.     }
  182.     if ($fetch == 'OBJECT'{
  183.       $i 0;
  184.       while ($data @mysql_fetch_object($this->RESULT)) {
  185.         $table[$i$data;
  186.         $i++;
  187.       }
  188.     }
  189.     if ($fetch == 'ASSOC'{
  190.       $i 0;
  191.       while ($data @mysql_fetch_assoc($this->RESULT)) {
  192.         $table[$i$data;
  193.         $i++;
  194.       }
  195.     }
  196.  
  197.     if (!isset($table)) $table 0;
  198.     return $table;
  199.   }
  200.  
  201.   /**
  202.    * mysql::DBescape()
  203.    * Echappement  des variables
  204.    *
  205.    * @access public
  206.    * @param string $array : données
  207.    * @return array : $array
  208.    */
  209.  
  210.   function DBescape ($array)
  211.   {
  212.  
  213.     $final_array array();
  214.  
  215.     foreach ($array as $key => $value{
  216.       if(is_string($value)) {
  217.         if (get_magic_quotes_gpc()) $value=stripslashes($value);
  218.         $final_array[$keymysql_real_escape_string($value);
  219.       else {
  220.         $final_array[$key=  $value;
  221.       }
  222.     }
  223.     return $final_array;
  224.      
  225.   }
  226.  
  227.   /**
  228.    * mysql::DBaffectedRow()
  229.    * Retourne le nombre d'enregistrements affecté par la dernière requête
  230.    *
  231.    * @access public
  232.    * @return integer : $res
  233.    */
  234.   function DBaffectedRow()
  235.   {
  236.     $res mysql_affected_rows();
  237.     return $res;
  238.   }
  239.  
  240.   /**
  241.    * _logDbQuery()
  242.    * @access private
  243.    * @param string $q 
  244.    * @return void 
  245.    */
  246.   function _logDbQuery($q)
  247.   {
  248.     $sep '##';
  249.     $fp @fopen(LOG_SQL_QUERIES'a');
  250.     @fwrite($fp$q $sep);
  251.     @fwrite($fpdate('[d-m-y H:i:s]' $sep))// date
  252.     @fwrite($fpget_class($sep);
  253.     @fwrite($fpEND_LINE);
  254.     @fclose($fp);
  255.   }
  256.  
  257.   /**
  258.    * _logDbError()
  259.    * @access private
  260.    * @param string $q 
  261.    * @return void 
  262.    */
  263.   function _logDbError($q)
  264.   {
  265.     $sep '##';
  266.     $fp @fopen(LOG_SQL_ERRORS'a');
  267.     @fwrite($fp$q $sep);
  268.     @fwrite($fpdate('[d-m-y H:i:s]' $sep))// date
  269.     @fwrite($fp$_SERVER["SCRIPT_NAME"getHttpParameters($sep);
  270.     @fwrite($fpget_class($sep);
  271.     @fwrite($fpEND_LINE);
  272.     @fclose($fp);
  273.   }
  274.   /**
  275.    * mysql::DBclose()
  276.    * Retourne le nombre d'enregistrements affecté par la dernière requête
  277.    *
  278.    * @access public
  279.    * @param string $requete : requête SQL
  280.    * @return boolean : $result
  281.    */
  282.   function DBClose()
  283.   {
  284.     @mysql_close();
  285.   }
  286. }
  287.  
  288. ?>

Documentation generated on Sat, 08 Nov 2008 14:51:11 +0100 by phpDocumentor 1.4.1