Bonjour,
MySQLi est une extension de PHP voir ici : http://www.php.net/mysqli

Ne pouvant pas intégrer cette extension, je veux faire une class similaire (voir ci-dessous)

Mais j'ai pas du tout l'habitude de l'objet sous PHP (je m'en veux), et j'aimerai pouvoir faire çà:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$db = new mysqli($BD_serveur, $BD_utilisateur, $BD_motDePasse, $BD_base);
$request = 'SELECT * FROM user;';
$result = $db->query($request);
while ($row = $result->fetch_assoc()) {
....
}
Le problème est avec $row = $result->fetch_assoc()
Avec MySQLi, on écrit exactement comme cela...
Mais j'ai de la buée devant les yeux et je sais pas ce que je dois modifier dans la class...

Merci d'avance pour ce coup de pouce et de vos explication!





Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
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
<?php
class mysqli {
// Définition des variables internes
	var $_con = 0;//Pour la connexion
	var $_res = 0;//Pour le resultat
	var $_res_data = Array(); // Resultat
	var $_nbres = 0; //Nombre de réponse
	var $_err = ""; // Pemet l'affichage des erreurs
	var $_debug_sql = 0; //Pour le debug :)
 
	//Construteur de la classe
	function mysqli($_host,$_user="www",$_password="",$_db) {
 
		// Se connect en mode persistent et n'affiche pas les erreurs (@ devant la fonction)
		$this->_con = @mysql_pconnect($_host, $_user, $_password) or die("Impossible de se connecter a $_host");		
		mysql_select_db($_db) or die("Impossible d'ouvrir la base de donnee $_db");		
	}
 
	//Active le debug
	function setDebug() {	
		$this->_debug_sql = 1 ;
		echo "debug Activé<br>";
	}
 
	//Execute un requete
	function query($_sql) {
		if($this->_debug_sql) echo "Requete : $_sql <br>";
		mysql_free_result ($this->_res);//Dans le cas ou d'autre requete on déja été effectué
		$this->_res=@mysql_query($_sql,$this->_con);
		if(!$this->_res) {//Erreur
			$this->_err = "Erreur sur la requete : $_sql <br>Réponse : ".mysql_error()."<br>"; 
			if($this->_debug_sql) echo $_err;//On affiche l'erreur
		} else if(!$_nbres = mysql_num_rows($this->_res)) return 0;//S'il n y a pas de résultat
			else if($this->_debug_sql) echo "Nombre de réponse : $_nbres<br>";// Si il y en a alors on affiche le nombre
			else return $this->_res;
	}
	//Recupere le resultat d'une ligne
	function fetch_assoc() {	
		if(!$this->_res) return 0;//Erreur de la requete
		$this->_res_data=mysql_fetch_array($this->_res);//On met le resultat d'une ligne dans un tableau
		return $this->_res_data;
	}
	//Affiche la valeur d'un champ
	function field($f) {
		return($this->_res_data[$f]);
	}
	//Recupère le nom des champs
	function getInfoTable() {
		if(!$this->_res) return 0;
		$_nbfield = mysql_num_fields($this->_res);//Nombre de champs de la requete
		if(!$_nbfield) $this->_err = "Erreur lors du comptage de champ ".mysql_error()."<br>";
		if($this->_debug_sql) 
			if(!$_nbfield) echo $this->_err;
			else echo "Nombre de champs : $_nbfield <br>";
		for($zz=0;$zz<$_nbfield;$zz++) $_fields[]=@mysql_field_name($this->_res,$zz);
		return $_fields;
	}
}
?>