salut,

j'ai 2 classes. la 1ere sert a créer une connection vers une DB et a passer des requetes:

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
<?php
 
class sqli {
 
	var $mysqli;
 
	function sqli(){
 
		global $config;
		$this->mysqli = new mysqli($config['db_server'], $config['db_user'], $config['db_password'], $config['db_database']);
 
 
	}
 
	function runSQL($sql_string){
 
		$resultQuery = $this->mysqli->query($sql_string);		
		return $result;
 
	}
 
	function closeConnection($doCommit = true){
	}
 
}
 
?>
une autre classe sert à construire une requete :

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
<?php
 
class request {
 
	var $fieldNames;
	var $fieldValues;
	var $table;
	var $DBconnection;
 
	function request($_table,$_DBconnection){
		$this->table        = $_table;
		$this->fieldNames   = array();
		$this->fieldValues  = array();
		$this->DBconnection = $_DBconnection;
	}
 
	function addField($fieldName,$fieldType){
		array_push($this->fieldNames,$fieldName);
		array_push($this->fieldValues,$this->setField($fieldName,$fieldType));
	}
 
	private function setField($fieldName,$fieldType){
		$res = $this->DBconnection->real_escape_string(postParameter($fieldName,''));
		return $res;
	}
 
}
 
?>
et depuis une page j'execute comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$mysqli = new sqli();
$request = new request('Primers',$mysqli);
donc je passe une instance de la classe sqli lors de la création de l'instance de la classe request. Et pourtant la ligne suivante foire : Call to undefined method sqli::real_escape_string()

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$res = $this->DBconnection->real_escape_string(postParameter($fieldName,''));
Et si au lieu de passer un objet mysqli à la classe request et d'essayer de m'en servir, j'en recrée un directement dans la classe request, là ca fonctionne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
global $config;
$tmp = new mysqli($config['db_server'], $config['db_user'], $config['db_password'], $config['db_database']);	
$res = $tmp->real_escape_string(postParameter($fieldName,''));
Vous savez ce qui peut bloquer?

Merci d'avance