Bonjour,
J'ai une table, avec une colonne 'Nom', je voudrais faire un programme qui ajoute un nouveau nom si celui-ci est absent ou bien met à jour la ligne si celui-ci est déjà présent.
j'utilise pour cela la fonction has_selected_record() du modul Net::Mysql
décrite comme ceci:
"has_selected_record()
TRUE will be returned if it has a reference result by SELECT."
et cela ne fonctionne pas dans le cas FALSE!
Voici le code:
Le problème c'est que la fonction n'exécute jamais la clause else, c'est incompréhensible alors que vérifie la présence d'un nom inconnu. J'ai une autre solution qui consisterait à comparer chaque nom mais cela ralentirait trop le processus (plus de 5000 noms).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 use Net::MySQL; $mysql->query(qq{SELECT Nom FROM personnes WHERE Nom='$name'}); if ($mysql->has_selected_record) { $mysql->query(qq{ UPDATE personnes SET Adresse='$adresse',telephone='$phone' WHERE Nom='$name' }); } else { $mysql->query(qq{ INSERT INTO personnes (id, Nom, Prenom, Adresse, telephone) VALUES (DEFAULT,'$name','$prenom','$adresse','$phone') }); }
Quelqu'un a -t-il déjà rencontré ce problème?
Partager