Il y a un déjà un pb lorsque dans la fenêtre SQL, on clique sur le bouton Format
celui-ci affiche une requête foireuse
ce bouton lance une requête ajax vers db_sql_format.php
le résultat retourné contient des ' à la place des quotes
Bonjour à tous,
Voila je rencontre un petit problème avec phpMyAdmin dans la fenêtre SQL.
la requête échoue lorsqu'il y a un critère litéral avec des quotes.
Voici ma config : Ubuntu, phpMyadmin 4.6.3, nginx 1.10, php 7.01, MySQL 5.7
il semble que les apostrophes soient converties en entités html '
d'où le "prés &"
Si vous avez déjà eu ce problème, merci de m'apporter vos lumières
Merci
Il y a un déjà un pb lorsque dans la fenêtre SQL, on clique sur le bouton Format
celui-ci affiche une requête foireuse
ce bouton lance une requête ajax vers db_sql_format.php
le résultat retourné contient des ' à la place des quotes
Je ne pense pas que ce soit le LIMIT 0, 25 car si je met mon propre LIMIT c'est pareil
la requête en erreur retournée :
ce qui me fait penser que ça coince juste après le =
si je fais
aucun problème
Si j'examine la requête ajax transmise, j'ai ça
ce qui me semble correct (j'obtiens la même chose sur un poste qui fonctionne)
Et ça donne quoi avec " ou ` ?
ni les guillemets ni les accent grave sont reconnus pour encadrer un litéral
Salut,
Pour le "près de &", je pense que c'est parce que phpmyadmin modifie ta requête et y ajoute & LIMIT 0, 25 parce qu'il pagine.
Tu as essayé avec des " ou des ` ?
Ce qui est bizarre sur l'erreur avec les ", c'est que c'est le second qui semble poser problème, et non le premier. Sinon, on aurait une erreur de syntaxe près de "fruits" LIMIT 0, 25.
Bon j'avance doucement
j'ai pointé la source du problème sans vraiment pouvoir le résoudre
En fait phpmyadmin n'y est pour rien, c'est php qui déconne
le problème vient du comportement de la variable $_POST qui est censée de désencoder les entitiés html mais qui ne le fait ici que partiellement.
un exemple tout bête : l'envoi par formulaire d'une valeur contenant une apostrophe encodée
j'ai mis 2 encodages différents de l'apostrophe ' et &apos
voici le fichier qui reçoit la valeur
le résultat de ces trois sorties vu en affichant la source de la page
les 2 premières contiennent toujours des entités html et en plus le &apos est converti en '
normalement on devrait avoir
Si quelqu'un a une explication ou connait la variable magique qui gère ce comportement, je suis preneur
Pour résoudre mon problème avec phpMyAdmin j'ai salement rajouté un html_entity_decode dans le fichier import.php ligne 114