Ymox Le 05/11/2010 à 14:04 Je termine actuellement une série de batch imports. Je n'ai plus qu'une étape à réaliser, le script semble marcher… mais pas les requêtes.
Je fais une suite alternée de SELECT et de INSERT INTO (copie de champs pour lesquels je dois bien récupérer les valeurs, mise à jour d'autres de ces champs). Mon script, qui affiche les données de debug SQL, me dit que toutes les requêtes sont OK, et semblent avoir été effectuées. Je dis semble, car un petit coup d'œil dans les tables et je constate que mes enregistrements créés n'y sont pas.
J'ai mes requêtes construites qui s'affichent aussi, et en les copiant-collant dans phpMyAdmin, elles fonctionnent.
Je savais déjà qu'il y avait des soucis quand on supprimait un ou plusieurs enregistrements après en avoir créé/inséré, mais là, je trouve quand-même bizarre. Outre regrouper mes requêtes par type, est-ce qu'il y a une autre astuce ?
Merci
[Edit] : Je viens de voir la syntaxe INSERT INTO … VALUES SELECT …, je vais probablement passer à ça, mais j'aimerais quand-même comprendre ce qui gêne avec ma séquence
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ? Nil Le 05/11/2010 à 14:32 C'est quoi, c'est du myIsam, ou de l'InnoDB ? T'es sûr que tu n'as pas un problème de clés étrangères ?
vince Le 05/11/2010 à 14:33 Tu as probablement oublié le COMMIT sur un base paramétrée pour ne pas le faire en automatique...
vince Le 05/11/2010 à 14:52 COMMIT et ROLLBACK sont les deux commandes qui permettent respectivement de valider ou d'annuler une transaction de création, modification ou suppression en base de données.
Ymox Le 05/11/2010 à 14:58 Où puis-je voir si une de mes tables l'a en automatique ou non, s'il te plaît ?
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ? vince Le 05/11/2010 à 15:01 C'est pas la configuration de la table mais celle de la base qui compte
vince Le 05/11/2010 à 15:15 Vérifie si ta config contient un SET AUTOCOMMIT=TRUE
Ymox Le 05/11/2010 à 15:20 Si je dois aller regarder dans un fichier de configuration, je n'y ai pas accès : je travaille sur un serveur externe de développement. Il n'y aurait pas moyen de voir ça dans phpMyAdmin ?
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ? vince Le 05/11/2010 à 15:23 j'ai pas ça sous la main mais si elle est définie tu dois pouvoir la voir sur l'état du serveur ou les variables du serveur... (mais tu pourras probablement pas la modifier)
Ymox Le 05/11/2010 à 15:25 D'ac, je vais fouiller un peu
(Je trouve encore assez bizarre d'avoir pu lancer mes batches sans souci jusqu'à celui-ci…)
[Edit] COMMIT et ROLLBACK ne sont utiles qu'avec InnoDB, et je travaille avec MyISAM
[Edit 2] SELECT @@AUTOCOMMIT
[Edit 3] …qui vaut TRUE. Comme il a été dit, c'est pour toute la base.
Je sais qu'il y a marqué "con" sur ma gueule. Je suis né comme ça, je m'y fais. Mais pourquoi toutes les filles qui me plaisent se sentent obligées de rajouter le suffixe "-fident" ? vince Le 06/11/2010 à 00:24 t'as pas moyen de fournir le script php, la structure de la base et les logs sql ?