Bonjour,
J'execute une requete de mise a jour, mais la modification n'est pas prise en compte.
Voici mon code :
Et le code de la fonction bd_change :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 my $res = FONCTION->bd_change($login, $pass, "update table set champ1='$champ1', champ2='$champ2' where gen_id=$gen_id"); print "REQUETE : update table set champ1='$champ1', champ2='$champ2' where gen_id=$gen_id"; if ($res ne 'ok') { print " <i>Impossible add</i>"; } else { print " <i>Confirmed add</i>"; }
J'ai fait un print de la requete comme indiqué dans le 1er code, et la requete s'affiche correctement. Lorsque je fais un copier-coller pour la traiter directement avec Oracle, ca marche bien.
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
26
27
28 sub bd_change{ my $login = $_[1]; my $pass = $_[2]; $dbh = DBI->connect('Dbi:Oracle:',$login,$pass,{ PrintError => 1, # warn() on errors RaiseError => 0, # don't die on error AutoCommit => 0, # don't commit executes immediately }) ;#or die "ERROR : couldn't connect to database ", DBI::errstr; my $sql = $_[3]; if ($dbh) { my $nb = $dbh->do($sql) or warn "le do ne marche pas dans bd_change\n"; $dbh->commit; $dbh->disconnect(); if ($nb ne 0) { return ("ok"); } else { return "error2";} } else { return ("error"); } }
Apparement, $nb est vide. Je l'ai fait affiché, et rien n'apparait...
Merci
Partager