Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PHP mysqli, mysqlnd Squeeze, Dotdeb ?

9 réponses
Avatar
Serge SMEESTERS
Salut =E0 tous,


Introduction :
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Dans le cadre de mes efforts pour remplacer l'usage du logiciel Access
de Microsoft par "de la web-application, PHP/MySQL"...


Probl=E8me :
=3D=3D=3D=3D=3D=3D=3D=3D

De PHP, j'utilise mysqli.
J'arrive =E0 faire plein de pages avec des requ=EAtes connues et
pr=E9d=E9finies dont je connais le nom et le type de chaque champs, etc.
Je peu donc facilement pr=E9senter les r=E9sultats dans un tableau html et
m=EAme faire un bind pour les champs r=E9sultats...

Mais je suis en train de cr=E9er une page plus "g=E9n=E9rique" devant
permettre la saisie d'une requ=EAte quelconque et afficher le r=E9sultat
en html.

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=E8me est que GNU Debian Squeeze, le syst=E8me du serveur sur
lequel je travail ne propose pas ("proposait pas encore") le paquet
n=E9cessaire, php5-mysqlnd :(
http://packages.debian.org/search?keywords=3Dphp5-mysqlnd


Solutions :
=3D=3D=3D=3D=3D=3D=3D=3D

Je n'ai encore appliqu=E9 aucune solution.
J'h=E9site...

Soit il y a un autre moyen de faire =E7a en PHP, obtenir les m=E9ta-info
sur les champs r=E9sultants d'une requ=EAte, nom, type de donn=E9es, etc.
Quelqu'un conna=EEt-il une telle autre solution ?
(si possible avec toujours mysqli, histoire de ne pas devoir trop m'en =E9l=
oigner)

Soit j'utiliserais un d=E9p=F4t alternatif tel que Dotdeb :
http://www.dotdeb.org/instructions/
Connaissez-vous ?
Me le recommandez-vous ?
Me le d=E9conseillez-vous ?

Merci d'avance.


=C0+,
Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/CAFeEpGBigmy+0HzhcB7ffiP2VU3KXYV13Enesfi6Q8dn50gCxw@mail.gmail.com

9 réponses

Avatar
Stéphane GARGOLY
Bonjour à tous les utilisateurs et développeurs de Debian :

Le 26/11/2013, Serge SMEESTERS a écrit :
Dans le cadre de mes efforts pour remplacer l'usage du logiciel Access
de Microsoft par "de la web-application, PHP/MySQL"...

Problème :
De PHP, j'utilise mysqli.
J'arrive à faire plein de pages avec des requêtes connues et
prédéfinies dont je connais le nom et le type de chaque champs, etc.
Je peu donc facilement présenter les résultats dans un tableau html e t
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 quelconque et afficher le résultat
en html.

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



Ne serait-il pas possible de passer à Wheezy ? C'est une version
stable et le paquet 'php5-mysqlnd' est disponible...

Cordialement et à bientôt,

Stéphane.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CAAqHXE43-tZzx9sW-u6V4b=
Avatar
Christophe
Bonjour,

Le 26/11/2013 12:04, Serge SMEESTERS a écrit :
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 ?



Je ne sais pas si ca répond totalement à la question, mais peut-être
directement en SQL :

SHOW COLUMNS FROM mytable;

http://dev.mysql.com/doc/refman/5.0/en/show-columns.html

@+
Christophe.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
fabrice régnier
'lut,

Ne serait-il pas possible de passer à Wheezy ? C'est une version
stable et le paquet 'php5-mysqlnd' est disponible...


oui, déjà.

Et peut-être que si tu veux remplacer Access, tu peux te tourner vers
phpmyadmin (si tu veux garder le couple php/mysql) ?

a+

f.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/529485a4$0$2144$
Avatar
Serge SMEESTERS
Ne serait-il pas possible de passer à Wheezy ? C'est une version
stable et le paquet 'php5-mysqlnd' est disponible...



oui, déjà.



Possible dans quel sens ?

Pour moi, là ?

Non car cela ne dépend pas que de moi.

Il s'agit d'un serveur en production, je dois négocier avec le
sys-admin qui n'a pas le temps dans les jours qui viennent pour faire
évoluer ce serveur de Squeeze à Wheezy... C'est prévu mais pas pour
bientôt...


Sinon, dans l'absolu, bien entendu, ce serait La solution : la plus
élégante, le plus évidente, etc.


Et peut-être que si tu veux remplacer Access, tu peux te tourner vers
phpmyadmin (si tu veux garder le couple php/mysql) ?



phpMyAdmin, je connais... il est installé (notamment pour mon propre usag e).

Mais ce n'est pas comparable à une application réalisée avec Access d e
Microsoft.
Avec formulaires soignés, macro/vbasic, etc.
Je suis en train de développer une application web "de haut niveau"...
La page permettant de saisir une requête quelconque est une
"exception" pour les utilisateurs avancés.
Une autre solution serait d'orienter ces utilisateurs avancés vers
phpMyAdmin, mais ma propre page serait intermédiaire quant au niveau
de compétences requises...


Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CAFeEpGCA3XGFA7BbrxvxcS7RsV8KV6WgJwy9nJuH=
Avatar
Serge SMEESTERS
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 ?



Je ne sais pas si ca répond totalement à la question,
mais peut-être directement en SQL :
SHOW COLUMNS FROM mytable;



Oui, s'il s'agissait d'une aussi triviale requête du genre ...
Select * from ma_table;
Mais l'idée est de pouvoir saisir toutes sortes de requêtes, précisio n
des champs souhaités, avec jointures, etc.
Bref, la seul autre solution mais que je n'envisage pas serait
d’analyser syntaxiquement la requête en PHP :(

Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CAFeEpGDE29Zu8=r4uto=hYmhpVbcgB-WJZ6+
Avatar
Christophe
Le 26/11/2013 12:43, Serge SMEESTERS a écrit :

Je ne sais pas si ca répond totalement à la question,
mais peut-être directement en SQL :
SHOW COLUMNS FROM mytable;



Oui, s'il s'agissait d'une aussi triviale requête du genre ...
Select * from ma_table;
Mais l'idée est de pouvoir saisir toutes sortes de requêtes, précision
des champs souhaités, avec jointures, etc.
Bref, la seul autre solution mais que je n'envisage pas serait
d’analyser syntaxiquement la requête en PHP :(

Serge S.




Ouch , tu risques te prendre la tête la :) .

mysqli et mysqlnd , j'utilise rarement (ne pour pas dire jamais) : au
final, je ne saurais pas trop dire quelles en sont les contraintes.

Par contre avec PDO, et la méthode getColumnMeta, il y a surement moyen
de faire des choses.
http://www.php.net/manual/fr/pdostatement.getcolumnmeta.php

Au final, entre le temps que tu vas mettre à essayer de parser la
requête SQL, ou passer à PDO (qui est particulièrement puissant et
"natif" avec driver mysql en package squeeze), il faut voir si ce n'est
pas un bon compromis.

(mais je comprend tout à fait que cela peut nécessiter pas mal de modifs
de code ... :( ).

@+
Christophe.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Serge SMEESTERS
[...]
Bref, la seul autre solution mais que je n'envisage pas serait
d’analyser syntaxiquement la requête en PHP :(



Ouch , tu risques te prendre la tête la :) .



Comme j'ai dis, je n'envisage pas ... :)


mysqli et mysqlnd , j'utilise rarement (ne pour pas dire jamais) : au
final, je ne saurais pas trop dire quelles en sont les contraintes.

Par contre avec PDO,



Merci !
En effet, je suis en train de regarder...

PDO, c'est mieux ? plus récent ?

Je pose la question car en PHP, les choses évoluent vite et, d'une
version à l'autre, certaines pratiques passent de "recommandées, que
tout le monde en parle et fait comme ça" à "déconseiller, obsolète,
deprecated". Et sauf pour qui est abonné aux listes de dév' PHP, c'est
vraiment pas évident d'y voir clair et de faire les bons choix...

Donc, ça me semble être bien :
http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/


... et la méthode getColumnMeta, il y a surement moyen
de faire des choses.
http://www.php.net/manual/fr/pdostatement.getcolumnmeta.php



Ok, par contre, comment considérer la mise en garde suivante ?

« Cette fonction est EXPERIMENTALE. Cela signifie que le comportement
de cette fonction, son nom et, concrètement, TOUT ce qui est documenté
ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en
conscient, et utilisez cette fonction à vos risques et périls. »


Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CAFeEpGCj2fpv40BOpZtoY0ybFVw8nh+
Avatar
Christophe
Salut,

Le 26/11/2013 13:23, Serge SMEESTERS a écrit :
[...]

Par contre avec PDO,



Merci !
En effet, je suis en train de regarder...

PDO, c'est mieux ? plus récent ?



Plus récent, ce n'est pas évident : De mémoire, c'est arrivé plus ou
moins au même moment que l'arrivée de PHP5.

Mieux : pour la qualité du code (généricité) et les fonctionnalités que
cela procure, c'est indéniable. Peut être juste un poil moins performant
en terme de mémoire et de CPU utilisée.
(je t'avouerais que je n'ai pas personnellement benchmarké le truc, mais
c'est une couche d'abstraction supplémentaire, donc ça a ses avantages
comme ses inconvénients).


Je pose la question car en PHP, les choses évoluent vite et, d'une
version à l'autre, certaines pratiques passent de "recommandées, que
tout le monde en parle et fait comme ça" à "déconseiller, obsolète,
deprecated". Et sauf pour qui est abonné aux listes de dév' PHP, c'est
vraiment pas évident d'y voir clair et de faire les bons choix...




Je suis fondamentalement d'accord avec ça : Ça évolue assez fréquemment
: les "deprecated" d'une version à l'autre peuvent être particulièrement
soulants par moment. Mais à mon avis, cette partie "abstraction de base"
est pérenne. (enfin, je l'espère de tout cœur en tous cas ;) )


... et la méthode getColumnMeta, il y a surement moyen
de faire des choses.
http://www.php.net/manual/fr/pdostatement.getcolumnmeta.php



Ok, par contre, comment considérer la mise en garde suivante ?

« Cette fonction est EXPERIMENTALE. Cela signifie que le comportement
de cette fonction, son nom et, concrètement, TOUT ce qui est documenté
ici peut changer dans un futur proche, SANS PREAVIS ! Soyez-en
conscient, et utilisez cette fonction à vos risques et périls. »




C'est sûr qu'à première vue ça fait hésiter : Je pense que cet
avertissement est surtout lié à celui d'en dessous : La méthode n'est
pas valable pour tous les moteurs de base (certains n'étant par exemple
pas typés).
C'est également sûrement pour prévenir qu'en cas de changement de
version majeure de PHP sur ton serveur, il faut y prêter attention à
l'utilisation de cette méthode si tu ne veux pas avoir de comportements
non souhaités.

Je t'invite toutefois a faire quelques tests dessus : une simple page
avec une requête "jointurée" en dur (par exemple issue de ton appli
existante), et vérifier que tu récupère les bonnes informations sur les
champs traités.

(je suis curieux des résultats obtenus).

@+
Christophe

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Serge SMEESTERS
[...]
Je t'invite toutefois a faire quelques tests dessus : une simple page
avec une requête "jointurée" en dur (par exemple issue de ton appli
existante), et vérifier que tu récupère les bonnes informations sur les
champs traités.

(je suis curieux des résultats obtenus).




Ça march' nikel :)

Je récupère bien le nom des champs et le type de données, de quoi
aligner à gauche (texte) ou à droite (nombre et date)...

Merci pour m'avoir conseillé PDO :)

À+,
Serge S.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/CAFeEpGAtr3ONf8EH+pFJreUuzV3srTVPGOmg5Y=