#!perl -w use DBI (); use Test::More; use lib 't', '.'; require 'lib.pl'; use vars qw($table $test_dsn $test_user $test_passwd); my $dbh; eval {$dbh= DBI->connect($test_dsn, $test_user, $test_passwd, { RaiseError => 1, PrintError => 1, AutoCommit => 0 });}; if ($@) { plan skip_all => "ERROR: $DBI::errstr. Can't continue test"; } plan tests => 39; ok ($dbh->do("DROP TABLE IF EXISTS $table")); my $create = <do($create)); ok ($sth = $dbh->prepare("INSERT INTO $table VALUES (?, ?)")); ok ($sth->execute(1, "Alligator Descartes")); ok ($sth->execute("3", "Jochen Wiedmann")); ok ($sth->execute(2, "Tim Bunce")); ok ($sth->bind_param(1, " 4")); ok ($sth->bind_param(2, 'Andreas Koenig')); ok ($sth->execute); ok ($sth->bind_param(1, 5)); ok ($sth->bind_param(2, '')); ok ($sth->execute); ok ($sth->bind_param(1, '')); ok ($sth->bind_param(2, '')); ok ($sth->execute(-1, "abc")); ok ($dbh->do("INSERT INTO $table VALUES (6, '?')")); ok ($dbh->do("INSERT INTO $table VALUES (7, '?')")); ok ($sth = $dbh->prepare("SELECT * FROM $table ORDER BY id")); ok($sth->execute); ok ($sth->bind_columns(undef, \$id, \$name)); $ref = $sth->fetch; is $id, -1, 'id set to -1'; cmp_ok $name, 'eq', 'abc', 'name eq abc'; $ref = $sth->fetch; is $id, 1, 'id set to 1'; cmp_ok $name, 'eq', 'Alligator Descartes', '$name set to Alligator Descartes'; $ref = $sth->fetch; is $id, 2, 'id set to 2'; cmp_ok $name, 'eq', 'Tim Bunce', '$name set to Tim Bunce'; $ref = $sth->fetch; is $id, 3, 'id set to 3'; cmp_ok $name, 'eq', 'Jochen Wiedmann', '$name set to Jochen Wiedmann'; $ref = $sth->fetch; is $id, 4, 'id set to 4'; cmp_ok $name, 'eq', 'Andreas Koenig', '$name set to Andreas Koenig'; $ref = $sth->fetch; is $id, 5, 'id set to 5'; cmp_ok $name, 'eq', '', 'name not defined'; $ref = $sth->fetch; is $id, 6, 'id set to 6'; cmp_ok $name, 'eq', '?', "\$name set to '?'"; $ref = $sth->fetch; is $id, 7, '$id set to 7'; cmp_ok $name, 'eq', '?', "\$name set to '?'"; ok ($dbh->do("DROP TABLE $table")); ok $sth->finish; ok $dbh->disconnect;