|
Bas de page | |
---|---|
Auteur | Sujet : PDO + beginTransaction pas content |
![]() Publicité | Posté le 15-10-2015 à 12:26:58 ![]() ![]() |
kao98 ... | Tu as essayé de forcer l'autocommit à false explicitement (Ne serait-ce que par sécurité) ?
Message édité par kao98 le 16-10-2015 à 11:10:29 --------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Je suis pas certain de comprendre ce que tu me conseilles de faire, disabler l'autocommit c'est ça ? Et je ferais ça dans phpMyAdmin ? Ou dans mes scripts via PDO ? Message édité par saint malo le 16-10-2015 à 12:51:09 |
kao98 ... | Faire
(nb: ne pas oublier de le remettre à 1 après la transaction bien sûr Message édité par kao98 le 16-10-2015 à 14:02:32 --------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Ok, merci. J'ai essayé... Rien n'a changé, même message d'erreur |
kao98 ... | Et plutôt que de faire une requête UPDATE CASE WHEN, tu as essayé de faire autant de requête UPDATE (toujours au sein d'une même transaction bien sûr) ?
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
kao98 ... | genre comme ça (nb: j'ai rien testé, écris de tête
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | J'ai modifié un poil le code (en gros j'ai mis des placeholders) :
|
kao98 ... | Tu as une exception sur l'appel à la méthode "rollback". Ca veut dire que tu as déjà eu une erreur dans le scope du "try". Quelle est-elle ? Tu n'affiches ses infos qu'après le rollback, donc tu ne les affiches jamais parce que le rollback pète --------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Alors du coup en fait j'ai dû manquer d'attention quand je faisais mes tests, parce que mon problème existe toujours, même sans la transaction : quand je suis sous les 72 éléments, ça update, et au dessus, non... Connais pas les breakpoints, comment ça fonctionne ? Comme ça ? :
Message édité par saint malo le 17-10-2015 à 21:03:19 |
![]() Publicité | Posté le 17-10-2015 à 18:34:35 ![]() ![]() |
kao98 ... | Oublie le breakpoint.
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo |
Tu parles de ça j'imagine.
J'essaie demain et je te dis. Message cité 1 fois Message édité par saint malo le 17-10-2015 à 21:08:13 |
kao98 ... |
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Alors.
2) La même chose avec une requête UPDATE différente pour chaque élément me donne la ligne "execute ok" autant de fois que d'éléments à updater... et pourtant la table n'est pas updatée ! Du coup j'ai modifié le code comme ça :
(De ce que je lis de l'erreur "MySQL server has gone away", ça veut juste dire que j'essaie d'updater trop de choses à la fois et qu'il me reste que mes yeux pour pleurer..., c'est ça ?) Message édité par saint malo le 19-10-2015 à 11:54:18 |
kao98 ... | Ok donc en fait, il s'agit juste d'un timeout de MySql (en fait, je pense que ça vient plutôt du driver php mysql)
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
rufo Pas me confondre avec Lycos! | Par hasard, ton appli web ne serait pas hébergée chez OVH --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
kao98 ... |
Message édité par kao98 le 19-10-2015 à 15:48:02 --------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Je sais pas si j'ai fait ce qu'il fallait, mais j'ai ajouté ces deux lignes :
juste après la connexion à la bdd. C'est bien ce qu'il fallait faire ? (Je ne suis pas chez OVH mais chez hostinger Message cité 1 fois Message édité par saint malo le 19-10-2015 à 17:00:40 |
kao98 ... |
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
rufo Pas me confondre avec Lycos! | hostinger, c'est du mutualisé, le pb est très probablement le même que chez OVH. Comme indiqué, il va falloir "ruser" en faisant en sorte que ton script limite le nb de requêtes SQL à la BD et son temps de connexion à cette dernière --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
saint malo | En effet, ça change rien. C'est dingue quand même, 72 lignes updatées ça me parait peu, non ?
|
rufo Pas me confondre avec Lycos! | Les sleep() ne changeront rien à mon avis car les limites de connexion/requêtes à la BD doivent probablement être associées au nom du script en cours d'exécution.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
kao98 ... |
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo |
Honnêtement je saurais pas vraiment dire, SQL et moi ça fait pas deux... J'ai essayé de limiter au maximum le nombre d'index parce que je me sens pas à l'aise avec, donc j'ai qu'un PRIMARY et un UNIQUE : ma table a 34 colonnes, dont : - la colonne id : UNSIGNED MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, Si vous avez des conseils sur des modifs à apporter, je suis preneur Message cité 1 fois Message édité par saint malo le 20-10-2015 à 23:05:07 |
Pablo Escrobarbe Retour d'exil | En faisant une autre requête simple ça marche ? T'es sûr des paramètres des connexions BDD ? |
kao98 ... |
--------------- Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98 |
saint malo | Hehe oui, j'étais pas sur de comment répondre ^^
Mais peut être que tu veux dire une requête autre qu'un update ? Pas dans ce script là, mais j'ai d'autres endroits de mon appli où j'ai des requêtes insert, et elles fonctionnent. Mais bon, j'insert jamais plus de 72 éléments d'un coup, donc je peux pas vraiment te dire si ça ça fonctionne. Par paramètres de connexion BDD, tu entends quoi ? Si tu entends ce qui est là dedans :
Message édité par saint malo le 21-10-2015 à 18:50:58 |
saint malo |
|
![]() Publicité | Posté le ![]() ![]() |
Sujets relatifs | |
---|---|
impasse avec PDO | Difficulté avec PDO |
Sélectionner une valeur dans un array multidimensionnel (+SQL & PDO) | Accélération d'un ensemble de requêtes via Pdo et préparation |
Connexion PDO. construct, ou singleton ? | equivalence mysql_escape_string en PDO |
Site converti en version mobile : risque de duplicate content ? | Convertir moteur recherche mysql_ en PDO |
PDO et procédure stockée SQL Server | [PDO] erreur avec fetchColumn |
Plus de sujets relatifs à : PDO + beginTransaction pas content |