diff options
Diffstat (limited to 'install/5.005/DBD-Pg-1.22-fixvercmp/t/04execute.t')
-rw-r--r-- | install/5.005/DBD-Pg-1.22-fixvercmp/t/04execute.t | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/install/5.005/DBD-Pg-1.22-fixvercmp/t/04execute.t b/install/5.005/DBD-Pg-1.22-fixvercmp/t/04execute.t new file mode 100644 index 000000000..964387802 --- /dev/null +++ b/install/5.005/DBD-Pg-1.22-fixvercmp/t/04execute.t @@ -0,0 +1,113 @@ +use strict; +use DBI; +use Test::More; + +if (defined $ENV{DBI_DSN}) { + plan tests => 13; +} else { + plan skip_all => 'cannot test without DB info'; +} + +my $dbh = DBI->connect($ENV{DBI_DSN}, $ENV{DBI_USER}, $ENV{DBI_PASS}, + {RaiseError => 1, AutoCommit => 0} + ); +ok(defined $dbh, + 'connect with transaction' + ); + +my $sql = <<SQL; + SELECT id + , name + FROM test + WHERE id = ? +SQL +my $sth = $dbh->prepare($sql); +ok(defined $sth, + "prepare: $sql" + ); + +$sth->bind_param(1, 1); +ok($sth->execute(), + 'exectute with one bind param' + ); + +$sth->bind_param(1, 2); +ok($sth->execute(), + 'exectute with rebinding one param' + ); + +$sql = <<SQL; + SELECT id + , name + FROM test + WHERE id = ? + AND name = ? +SQL +$sth = $dbh->prepare($sql); +ok(defined $sth, + "prepare: $sql" + ); + +$sth->bind_param(1, 2); +$sth->bind_param(2, 'foo'); +ok($sth->execute(), + 'exectute with two bind params' + ); + +eval { + local $dbh->{PrintError} = 0; + $sth = $dbh->prepare($sql); + $sth->bind_param(1, 2); + $sth->execute(); +}; +ok(!$@, + 'execute with only first of two params bound' + ); + +eval { + local $dbh->{PrintError} = 0; + $sth = $dbh->prepare($sql); + $sth->bind_param(2, 'foo'); + $sth->execute(); +}; +ok(!$@, + 'execute with only second of two params bound' + ); + +eval { + local $dbh->{PrintError} = 0; + $sth = $dbh->prepare($sql); + $sth->execute(); +}; +ok(!$@, + 'execute with neither of two params bound' + ); + +$sth = $dbh->prepare($sql); +ok($sth->execute(1, 'foo'), + 'execute with both params bound in execute' + ); + +eval { + local $dbh->{PrintError} = 0; + $sth = $dbh->prepare(q{ + SELECT id + , name + FROM test + WHERE id = ? + AND name = ? + }); + $sth->execute(1); +}; +ok($@, + 'execute with only one of two params bound in execute' + ); + + +ok($sth->finish(), + 'finish' + ); + +ok($dbh->disconnect(), + 'disconnect' + ); |