/*
------------DAO------------
----DataAcessObject------
EN fait, c'est une layer au-dessus de MySQL
Ne marche que si ta connexion à Mysql a déjà été activée !!!!
mon conseil : fait 2 fichiers :
- req_connect.php // connecte à la BD MySQL
- req_disconnect.php // mysql_free = libère la connexion
Comment marche la classe DAO ?
Exemple concret :
*/
include_once("class.dao.php4");
$dao_object = new DAO(); // instancie le nouvel object dao_object de type DAO
$query = "SELECT * FROM table WHERE id=1";
$dao_object->DAO_query($query); // lance la requete et récupère le résultat
$dao_object->DAO_numrows(); // nombre d'enregistrements retournés
// requête UPDATE INSERT
$query = "INSERT INTO table (col1, col2) VALUES (1,'text')";
$dao_object->DAO_execute($query); // unbuffered query = sans retour de ligne
$dao_object->DAO_affrows(); // number of affected rows pour les requêtes UPDATE / INSERT / DELETE / DROP
pour afficher, 3 possibilité comme mysql :
while($val = $dao_object->DAO_fetch_object())
{
echo $val->id;
}
while($val = $dao_object->DAO_fetch_array())
{
echo $val["col1"]; // le nom de la colonne
// ou encore :
echo $val[0]; // le numéro de la colonne en commançant par zéro
}
while($val = $dao_object->DAO_fetch_assoc())
{
echo $val["col2"]; // le nom de la colonne seulement
}
/*
Attention, si tu as un object $this->dao_object dans une de tes classes,
et qui tu t'en sers dans plusieurs méthodes, tu vas avoir un conflit entre les 2 méthodes.
Il faut donc instancier un objet par boucle while, exemple :
*/
while($val1 = $dao_object1->DAO_fetch_assoc())
{
while($val2 = $dao_object2->DAO_fetch_object())
{
echo $val1["col1"] . " is not equal to " . $val2["col1"];
}
}