Bonjour
J'ai un programme qui met à jour un carnet d'adresse ou bien le complète si l'entrée est nouvelle.
Tout fonctionne bien jusqu'à ce que je rencontre des données contenant une apostrophe.
J'obtiens l'erreur suivante: Can't call method "each" on an undefined value at draft.pl line 50.
En me documentant sur le net, le problème provient de l'apostrophe, la solution préconisée est de la remplacer par un \'
J'ai donc ajouté la ligne suivante:
L'erreur disparait mais par contre ma table n'est plus mise à jour ni complétée: c'est un mystère pour moi d'autant que je débute dans l'apprentissage des bases de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $Nomvoie=~s/\'/\\'/;
Merci à vous tous pour votre aide.
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
20
21
22
23
24
25 my $Nomvoie="Boulevard de l'Est"; my $IsPresent=0; $mysql->query(qq{SELECT * FROM carnet WHERE voie LIKE '$Nomvoie%'}); my $record_set = $mysql->create_record_iterator; while (my $record = $record_set->each) { if ($record->[1] eq $Nomvoie) { $IsPresent=1; $mysql->query(qq{ UPDATE carnet SET Numero='$numero' WHERE voie='$Nomvoie' }); } } if ($IsPresent eq 0) { $mysql->query(qq{ INSERT INTO carnet (id, Name, Numero, voie) VALUES (DEFAULT,'$name','$numero','$Nomvoie') }); } $mysql->close;
Partager