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

Documentation generated on Thu, 03 May 2012 15:02:30 +0200 by phpDocumentor 1.4.1