On Oct 7, 1:59 am, martin.h...@oracle.com (Martin Hall) wrote:
> Just a thought - but how are you checking the update?  Just after the
> statement in the same Perl code or in a separate session?
>
> Cheers
>
> Martin
>
> On 06/10/2011 23:04, Eirik Toft wrote:
>
>
>
>
>
>
>
>
>
> > Greetings, been a DBI user for years now working with stuff from
> > unixODBC, Oracle, MySQL, etc...etc...
>
> > So, the issue I'm having is with a simple update statement to a mysql
> > database.
>
> > Here's a small snippet of code....
>
> > my $MAPSQL="UPDATE varmaptest SET value=? WHERE grpid=(SELECT id FROM
> > machinegroups WHERE name=?) AND varid=(SELECT id FROM variables WHERE
> > name=?)";
>
> > my $DBUSER="user";
> > my $DBPASS="password";
> > my $SQLDS="dbi:mysql:database=$CADB;host=databasehost";
>
> > my $dbh = DBI->connect($SQLDS,$DBUSER,$DBPASS);
>
> > my $sth = $dbh->prepare($MAPSQL);
> > unless ($sth->execute("newval","group1.mygroup.mine","varname1")) {
> >     warn "Database error: ".$dbh->errstr;
> > }
>
> > So, for some reason, the update never happens, and I get no errors. I
> > have enabled SQL tracing and from the output, I get the following
> > statement:
>
> > UPDATE varmaptest SET value='newval' WHERE grpid=(SELECT id FROM
> > machinegroups WHERE name='group1.mygroup.mine') AND varid=(SELECT id
> > FROM variables WHERE name='varname1');
>
> > Now, if I actually run the mysql client, and paste this statement into
> > it and execute it, it works perfectly.
>
> > I'm using perl 5.10.1, mysql database version 5.1.49, DBI version
> > 1.612.
>
> > On a side note, because I know someone is going to ask, I use the same
> > database handle ($dbh) on other SELECT statements and they all return
> > data fine (so it's not a database connectivity issue).
>
> > Does anyone have any ideas, or at least can give me a good kick in the
> > head as to where I should look next?
>
> > Thanks in advance;
>
> > Eirik..
>
> --

Actually, I'm checking both - using the same Perl code, and also in a
separate mysql session.

Reply via email to