Passage d'un objet à une classe
salut,
j'ai 2 classes. la 1ere sert a créer une connection vers une DB et a passer des requetes:
Code:
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:
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:
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:
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:
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