mysqli : le bonheur de la POO avec MySQL 4.1
Par -Alexandre LEGOUT aka LAlex- le vendredi, janvier 14 2005, 10:28 - PHP - Lien permanent
Comme beaucoup le savent, PHP5 propose une nouvelle extension pour MySQL 4.1, qui offre le gros avantage de pouvoir programmer ses requêtes soit de manière "standard" (old-style), soit en POO.
Jugez plutôt de la différence:
AVANT:<?
APRES :
$cnx = mysql_connect("localhost", "lalex", "lalex");
mysql_select_db("lalexdb", $cnx);
$rst = mysql_query("SELECT * FROM messages", $cnx);
while($cur = mysql_fetch_array($rst)) {
echo $cur["sujet"];
}
mysql_free_result($rst);
mysql_close($cnx);
?><?
$cnx = new mysqli("localhost", "lalex", "lalex", "lalexdb");
$rst = $cnx->query("SELECT * FROM messages");
while($cur = $rst->fetch_object()) {
echo $cur->sujet;
}
$rst->close();
$cnx->close();
?>
C'est-y pas mieux comme ca ? ![]()
Commentaires
ça évite de rajouter une couche personnelle ^^
Et pour ceux que ça fait chier d'écrire mysqli, il y a toujours Creole de phpdb.org
D'écrire mysqli ??? 8O Qu'est-ce que tu veux dire par la ? :o
Renaud, tout est déjà fait
C'est ici: http://www.php.net/manual/fr/ref.mysqli.php
Je connaissais pas mais làn j'adhère
Hum on dirait que chez OVH ca ne prend pas
Apparement qui dit Mysqli dit pas mysql donc je sais pas comment ca se configure sous win
Non, c'est pas ça, c'est juste que en plus de php5, il faut avoir mysql en version 4.1 minimum

Les version antérieures ne sont pas utilisables avec mysqli...
Pour ceux que ça intéresse il y a toujours le package DB de Pear qui permet le même genre de manip avec en plus quelques méthodes bien pratiques et ce quelque soit le type de BDD ce qui ne gache pas le plaisir :
voir ici pour la doc
vraiment pratique cette lib
(ah tiens c'est aussi compatible avec mysqli :p )
Pear:DB permet ce genre de syntaxe depuis longtemps. Après, faut être motivé à s'y mettre. mais c'est vrai que c'est hachement plus sympathique à coder façon objet.
wooops, avait po vu les autres commentaires
fritscheuse, tout à fait de ton avis au niveau pratique
En effet, xion, c'est ce que j'ai pu lire
ADODB c'est pas mal non plus …
pas de pb titouille,
d'une manière générale je dirais que la lib PEAR dans son ensemble est un vrai bijou à éssayer de toute urgence pour les développeurs PHP qui ne connaitraient pas déjà.
Pour ma part, en plus de DB j'utilise déjà fréquemment des packages comme QuickForm ou Pager qui sont extrèmement utiles pour mes backoffices
l'intérêt de ttes ces lib c'est que les classes s'interconnectent facilement entre elles ce qui fait gagner un temps fou
MySQL ? Mais que pense tu de FireBird (bdd..) ?
Un comparatif dans un mag ce mois-ci (PHP Solution) titre : MySQL Vs FireBird, Le plus populaire n'est pas forcément le meilleurs. Allors, qu'en pensé ?
Ben, faudrais lire l'article
Il est dispo sur le net ?
Olivier c moi Christopher le cousin à Sylvin LOL,
C'est bizzare kon et les meme centre d'interet non ?
Heu bonjour
> Chris06 - Puis-je avoir plus de précisions, parsque là, j'ai du mal à te situer
Désolé...
Bonjour
On pouvait déja faire de l'objet avant et il n'est pas utile de réutiliser à chaque fois le handler de connexion, il suffit de le mettre dans un fichier et d'en faire un include
sinon voilà ce que ça donnait :
mysql_connect("localhost", "lalex", "lalex");
mysql_select_db("lalexdb", $cnx);
$q = "SELECT message FROM messages";
$r = mysql_query($q) or die(mysql_error().$q);
while($o = mysql_fetch_object($q))
{
echo $o->message;
}
mysql_close()
::un petite info supplémentaire sur ton mysql_fetch_array
while($cur = mysql_fetch_array($rst)) {
echo $cur["sujet"];
}
devient
while($cur = mysql_fetch_array($rst)) {
extract($cur, EXTR_OVERWRITE); // cela te permet d'extraire les données et "d'instancier" des variables directement plus souple que le $cur["sujet"]
echo $sujet;
}
En tout cas ton site est une référence en flash pour moi qui m'intéresse aux sockets XML en flash dans un environnement client/serveur. Bonne continuation.
Dimitri
@Dimitri > Je parle d'utilisation d'objets de classe mysqli ... ce qui donne un code de type
$rst = $cnx->query("SELECT * FROM message");// au lieu de la version procedurale
$rst = mysql_query("SELECT * FROM message", $cnx);
Il n'est donc pas possible de faire de l'objet "nativement" avec PHP4 sur MySQL, excepté grâce a des modules PEAR d'abstraction de bases de données ...
++ ^^
Fil des commentaires de ce billet