A ta place pour faciliter le dev je ferais mysqli en procédural (puisque c'est quasiment la même syntaxe que mysql excepté qu'il faut passer l'identifiant de connexion) et le mode objet serait réservé à pdo...
Daccord, je prend note.
Je voudrai revenir sur une de mes idées cité plus haut : séparer en plusieurs fichiers
- La class connexionBD, qui lit le fichier database.ini et qui appele la classe db_*.php qu'il faut, qui est la class mère (methode connexion, deconnexion, requete...)
- les classes db_mysql.php, db_postgresql.php, db_mysqli.php (puis pourquoi pas une evolution avec db_oracle, db_msql etc...) qui sont les classes filles contenant leur propre methode connexion, deconnexion, requete.
Je n'arrive pas à bien discerner, comment ds mes methodes de connexionBD, je fais appel à celles de la classe fille qui m'interesse. Je dois pas prendre le problème du bon côté je pense mais je ne vois pas comment faire.
EDIT : j ai appliquer la méthode procedurale comme AB l'a dit mais j ai un soucis (c etait trop beau ^^).
Ma methode connexion contient donc ceci :
$this->m_nConnect = mysqli_connect($this->psHost, $this->psUserName, $this->psMdp, $this->psDB);
Mais pour proteger mes données, j applique donc un mysqli_real_escape_string comme ceci (j envoie un tableau 'champ' => 'valeur' et fais ceci :
foreach($donnees as $champ=>$value){
$valueProtege = mysqli_real_escape_string($this->m_nConnect, $value);
$donnesOK[$champ] = $valueProtege;
}
mais ça me retourne une erreur de ce genre : Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given
Tandis que de cette façon ça fonctionne :
foreach($donnees as $champ=>$value){
$valueProtege = mysqli_real_escape_string(mysqli_connect($this->psHost, $this->psUserName, $this->psMdp, $this->psDB), $value);
$donnesOK[$champ] = $valueProtege;
}
Je ne comprend pas trop le soucis, vu que d'apres la doc, c est bien la valeur $link, contenant le mysqli_connect, qu'il faut passer comme premier paramètre