[Linux-bruxelles] [PHP mysqli] peut-on se passer de mysqlnd ?

Jérôme Warnier jwarnier at beeznest.net
Lun 2 Déc 12:58:23 CET 2013


On 2013-11-26 12:00, Serge SMEESTERS wrote:
> Salut la liste,
> 
> 
> Introduction :
> ==========
> 
> Je poste ici pour ne pas devoir m'abonner à une xième liste.
> 
> Il s'agit bien de l'utilisation de logiciels libres à Bruxelles, au
> sein d'une asbl située sur la commune de Forest :)
> 
> Je vous ai déjà fais part de mes effort pour remplacer l'usage du
> logiciel Access de Microsoft par "de la web-application, PHP/MySQL"...
> 
> Je recherchais quelques cadres de travail (Framework en anglais) pour
> me faciliter ce genre de tâches. Mais je n'ai encore rien trouvé de
> convaincant, sans tomber dans la grosse artillerie...
> 
> Je code donc "tout" moi-même en PHP...
> PHP étant déjà lui-même bien abouti dans ses dernière versions...
> 
> Ceux qui sont intéressés par la chose peuvent me contacter
> personnellement. Je partagerai avec plaisir du code ;)
> 
> 
> Problème :
> ========
> 
> De PHP, j'utilise mysqli.
> J'arrive à faire plein de pages avec une requête connue et prédéfinie
> dont je connais le nom des champs, etc. Je peu donc facilement
> présenter les résultats dans un tableau html et même faire un bind
> pour les champs résultats...
> 
> Mais je suis en train de créer une page plus "générique" devant
> permettre la saisie d'une requête et obtenir le résultat.
> 
> Pour se faire, j'aurais besoin de pouvoir utiliser la fonction suivante 
> :
> http://fr.php.net/manual/en/mysqli-stmt.get-result.php
> Mais vous verrez comme moi :
>   MySQL Native Driver Only
>   Available only with mysqlnd.
> 
> Et le problème est que GNU Debian Squeeze, le système du serveur sur
> lequel je travail ne propose pas ("proposait pas encore") le paquet
> nécessaire, php5-mysqlnd :(
>  http://packages.debian.org/search?keywords=php5-mysqlnd

Ce MySQL Native Driver est vraiment une bonne chose.
Avant, PHP utilisait la librairie du client MySQL (upstream), et son 
intégration était donc imparfaite. Avec mysqlnd, ils ont réécrit un 
client MySQL pour PHP, qu'ils ont intégré dans PHP et qui offre donc 
beaucoup de fonctionnalités (bas niveau) en plus, avec notamment pour 
effet le contrôle précis, et la réduction significative, de la mémoire 
vive utilisée.
Il y a au moins une fonctionnalité perdue dans l'histoire, qui est la 
compression du flux entre le client et le serveur. De ce que j'en sais 
d'il y a quelques mois, c'était en développement, mais sans promesse de 
délai de réalisation.

Encore une petite chose: d'expérience, le passage à Wheezy sur un 
serveur web (PHP + MySQL) est vraiment bénéfique au point de vue des 
performances (au moins). Pas seulement une question de fraîcheur des 
packages ou de sécurité, donc.


> Solutions :
> ========
> 
> Je n'ai encore appliqué aucune solution.
> J'hésite...
> 
> Soit il y a un autre moyen de faire ça en PHP, obtenir les méta-info
> sur les champs résultants d'une requête, nom, type de données, etc.
> Quelqu'un connaît-il une telle autre solution ?
> (si possible avec toujours mysqli, histoire de ne pas devoir trop m'en 
> éloigner)
> 
> Soit j'utiliserais un dépôt alternatif tel que Dotdeb :
> http://www.dotdeb.org/instructions/
> Connaissez-vous ?

Oui, bien sûr.

> Me le recommandez-vous ?

Sans aucun doute.

> Me le déconseillez-vous ?

Non, pas du tout. Nous (BeezNest) l'utilisons pour des énormes sites web 
en PHP (Chamilo ou Drupal), et l'utilisons d'ailleurs toujours 
actuellement sur certains.

> Merci d'avance.
> 
> 
> À+,
> Serge S.




Plus d'informations sur la liste de diffusion Linux-bruxelles