|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Cédric Merle Inscription : décembre 2010 Messages : 5 ![]() |
Bonjour à tous,
Comme tout le monde je suppose, je développe mon site en local. Pour ma part, j'utilise Wamp 2.0. Donc pour ce qui est du développement, pas de soucis. Seulement voilà, lorsque je veut mettre mon site en production sur mon serveur Linux, je me retrouve avec des erreurs MySql : Citation:
Code :
De plus, sur un autre serveur que j'ai installé pour les besoins de mon entreprises, ce genre de requêtes tourne parfaitement o_O Ce qui me laisse alors à penser que le problème viens d'une configuration, ou d'une version du serveur MySql... J'aimerai donc configurer mon serveur afin qu'il accepte ces requêtes (enfin si c'est possible). Mais je ne sais pas comment faire. Pour informations supplémentaire, mon serveur est un ubuntu 8.04.4 LTS, le serveur MySql est en version 5.0.51a-3ubuntu5.8, et pour la connexion à la BDD, j'utilise PDO. Voilà, merci d'avance |
|||
|
|
00
|
|
|
#2 |
![]() ![]() |
MySQL a raison de râler ! Comme tu as une colonne + une fonction de regroupement dans le SELECT, il te faut un GROUP BY sinon ta requête n'a pas de sens !
![]() Il vaut mieux que tu écrives tes requête correctement plutôt que de vouloir triturer la configuration de MySQL pour qu'il accepte une mauvaise requête. En fait, il n'aurait déjà pas dû l'accepter dans la phase de développement. Dans la requête que tu présentes, que représente le nom par rapport à l'id ? Autrement dit, peut-il y avoir plusieurs noms pour un id ou cette requête n'est-elle sensée retourner qu'une seule ligne de résultat ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Invité de passage
![]() Cédric Merle Inscription : décembre 2010 Messages : 5 ![]() |
Oui je sais que cette requête n'est pas extrêmement correcte... Mais si je fais ça c'est pour économiser des ressources. Le but est simple : vérifier qu'une ligne existe (avec le count sur l'id) et si c'est le cas, récupérer le nom.
Étant donné que c'est un id il est soit censé exister, soit pas, je n'aurais qu'une seul ligne de renvoyer... Et cette ligne me dira si ce que je cherche existe ou pas. Si ça existe, ça me renvoi le nom, sinon ça me renvoi null... :/ ça évite de faire une deuxième requête par derrière. Après oui je peut mettre un GROUP BY, c'est certain... Mais ce qui m'étonne c'est qu'un serveur me l'accepte, et pas l'autre... Et comme pour le moment j'ai pas le temps de refaire tout mes scripts pour refaire toute les requêtes qui ont ce style (il y en a pas mal)... J'aimerai pouvoir modifier la config MySql pour qu'il les accepte. |
|
|
00
|
|
|
#4 | ||
![]() ![]() |
Pourquoi vouloir compter le nombre de lignes alors que tu sais que ça peut au maximum t'en retourner une seule ?
Code :
Soit il n'existe pas et la requête ne retourne aucune ligne de résultat. Dans ton programme PHP, il te suffit de vérifier si $result['nom'] != '' Tu veux économiser des ressources mais tu demandes à MySQL un calcul inutile ! Bizarre comme notion de l'économie !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#5 |
|
Invité de passage
![]() Cédric Merle Inscription : décembre 2010 Messages : 5 ![]() |
Pour être sûre que c'est valide... Si on image que le nom peut être vide, ta solution ne tiens plus... Et pour le petit calcule que ça demande à MySql, je pense qu'il est négligeable ^^
Mais j'en conviens parfaitement, ma technique n'est pas parfaite... Mais je ne vais pas non plus commencer à recoder ton mon site, déjà bien avancé pour si peut. Du moins j'aimerai éviter en tout cas :/ Et c'est pour ça que j'aimerai trouver une solution à ce problème... |
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Si tu veux vérifier que l'id existe, fais simplement cette requête :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#7 |
|
Invité de passage
![]() Cédric Merle Inscription : décembre 2010 Messages : 5 ![]() |
J'ai pas dit que j'étais contre tout conseil. Ta manière est aussi très bien. Après mon code n'est pas plus salle que ça. Mais bref, on s'éloigne du sujet....
J'aimerai simplement savoir comment modifier MySql pour qu'il accepte la requête. Sa me permettra d'en apprendre au passage un peu plus sur le sujet... |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Franchement je ne peux qu'appuyer cinephil, pour moi aussi il faut modifier toutes les reqêtes incriminées.
Mais pour répondre à ta question, une piste semble être ONLY_FULL_GROUP_BY Compare tes 2 my.cnf, celui de wamp et celui de ta prod. A lire absolument autour de MySql et du GROUP BY |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Cédric Merle Inscription : décembre 2010 Messages : 5 ![]() |
Oui je compte bien les changer. Mais l'à, j'ai besoin de mettre en ligne une version de test. Donc il faut que ça marche. Ensuite, je règlerai ces problèmes.
Merci pour tes liens. Je vais regarder. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com