Vous êtes ici Codes PHP et MySQL > Classes > Classe DATABASE

 

Classe DATABASE

exemple:

$_obj_DB = new database();
$_arrRecord = $_obj_DB->query('select name, lastname from user');
$_int_NUM = $_obj_DB->getNumRows();
$_obj_DB->close();

echo $_int_NUM;

print_r($_arrRecord);
 
Eric Potvin
Site de l'auteur voir
[4] sources en PHP voir
Code vu 9851 fois
Enregistré le 27 Sept 2005
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Classe DATABASE
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Classe DATABASE                                           */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts142-PHP.htm              */
/* Auteur         : Eric Potvin                                               */
/* Date édition   : 27 Sept 2005                                              */
/* Website auteur : http://www.phpsources.org                                 */
/*                                                                            */
/******************************************************************************/

//version 0.1

class database {

  //Variable interne de la classe
  var $errorNum  0;
  var $errorMsg  null;
  var $resource  null;
  var $cursor    null;
  var $number    0;

  //constructeur de la classe.
    function database(
                  $host='localhost',
                  $user 'web',
                  $pass 'web',
                  $db 'database')
   {
    //pour valider que l'usager n'entre pas la base
    //de données systeme de MYSQL
    //afin de la pirater.
    if(strtolower($db) == 'mysql') {
      $db '';
    }
    
    if(!($this->resource mysql_connect($host$user$pass))) {
      //en cas d'échec du serveur
      $this->errorNum mysql_errno();
      $this->errorMsg mysql_error();
    }
    if (!mysql_select_db($db)) {
      //en cas d'échec de la bd
      $this->errorNum mysql_errno();
      $this->errorMsg mysql_error();
    }
  }

  //retoune le ID de l'erreur
  function getErrorNum() {
    return $this->errorNum;
  }
  //retoune le message de l'erreur
  function getErrorMsg() {
    return $this->errorMsg;
  }
  //s'assure que les champs entrés dans la base
  //de données sont valide en ajoutant au
  //besoins des ' - semblable à la fonction "addslashes"
  function getEscaped($text) {
    return mysql_escape_string($text);
  }

  //envoi une requete à la BD et retounr les résultats sous forme de tableau.
  function query($sql '') {
    if(empty($sql)) {
      return false;
    }
    $this->errorNum 0;
    $this->errorMsg '';
    $array = array();
    //assigne le résultat de la requête
    $this->cursor mysql_query(database::getEscaped($sql), $this->resource);
    if (!$this->cursor) {
      $this->errorNum mysql_errno($this->resource);
      $this->errorMsg mysql_error($this->resource);
      return false;
    }
    
    $this->number mysql_num_rows($this->cursor);
    //affecteur le tableau avec les valeurs de retours.
    while($row mysql_fetch_assoc($this->cursor)) {
      $array[] = $row;
    }
    mysql_free_result($this->cursor);
    return $array;
  }
  //ferme la connection 
  function close() {
    return mysql_close($this->resource);
  }
  //retourne le nombre de ligne(s)
  function getNumRows() {
    return $this->number;
  }
  //retourne le dernier ID de la dernière requête "insert" ajouté
  function getLastId()
  {
    return mysql_insert_id();
  }
  //retourne la version de mysql
  function getVersion()
  {
    return mysql_get_server_info();
  }

}

?>

 

Fonctions du code

: Renvoie une chaîne en minuscules - (PHP 4, PHP 5)
: Ouvre une connexion à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Retourne le numéro d'erreur de la dernière commande MySQL - (PHP 4, PHP 5, PECL...
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Sélectionne une base de données MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Protège les caractères spéciaux SQL - (PHP 4 >= 4.0.3, PHP 5, PECL mysql:1.0)
: Détermine si une variable contient une valeur non nulle - (PHP 4, PHP 5)
: Crée un tableau - (PHP 4, PHP 5)
: Envoie une requête à un serveur MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: Retourne le nombre de lignes d'un résultat MySQL - (PHP 4, PHP 5, PECL...
: Lit une ligne de résultat MySQL dans un tableau associatif - (PHP 4 >= 4.0.3, PHP...
: Libère le résultat de la mémoire - (PHP 4, PHP 5, PECL mysql:1.0)
: Ferme la connexion MySQL - (PHP 4, PHP 5, PECL mysql:1.0)
: - (PHP 4, PHP 5, PECL mysql:1.0)
: Lit les informations sur le serveur MySQL - (PHP 4 >= 4.0.5, PHP 5, PECL...
Commentaire
Bonjour,

juste une erreur à signaler,

quand vous écrivez : "database::getEscaped($sql)", ligne 84, ce sont les attributs qu'il faut sécurisés, et pas la requête SQL.

un exemple :

$sql = INSERT INTO user (`login`, `pass`) VALUES ('j'ean marie', 'pass');

Si je fais : database::getEscaped($sql) :

$sql = INSERT INTO user (`login`, `pass`) VALUES (\'j\'ean marie\', \'pass\');

alors qu'il faudrait :

$sql = INSERT INTO user (`login`, `pass`) VALUES ('j\'ean marie', 'pass'); ....

Une solution :
ligne 84 : $this->cursor = mysql_query($sql, $this->resource);

Et de laisser le contrôle des attributs à l'utilisateur.

Brieuc.

 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Classes

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité