1
0
Fork 0
mirror of https://github.com/DBD-SQLite/DBD-SQLite synced 2025-06-08 14:48:32 -04:00

added placeholder explanation and its test

This commit is contained in:
Kenichi Ishigaki 2010-02-11 03:24:36 +00:00
parent 18254d2a82
commit 126b5e6dc4
2 changed files with 45 additions and 0 deletions

View file

@ -748,6 +748,17 @@ This is somewhat weird, but works anyway.
=back
=head2 Placeholders
SQLite supports several placeholder expressions, including C<?> and C<:AAAA>. Consult the L<DBI> and sqlite documentation for details.
L<http://www.sqlite.org/lang_expr.html#varparam>
Note that a question mark actually means a next unused (numbered) placeholder. You're advised not to use it with other (numbered or named) placeholders to avoid confusion.
my $sth = $dbh->prepare('update TABLE set a=?1 where b=?2 and a IS NOT ?1');
$sth->execute(1, 2);
=head2 Foreign Keys
B<BE PREPARED! WOLVES APPROACH!!>

34
t/41_placeholders.t Normal file
View file

@ -0,0 +1,34 @@
#!/usr/bin/perl
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use t::lib::Test qw/connect_ok/;
use Test::More;
use Test::NoWarnings;
plan tests => 9;
my $dbh = connect_ok( RaiseError => 1 );
ok $dbh->do('create table foo (id integer, value integer)');
ok $dbh->do('insert into foo values(?, ?)', undef, 1, 2);
ok $dbh->do('insert into foo values(?1, ?2)', undef, 2, 3);
ok $dbh->do('insert into foo values(:1, :2)', undef, 3, 4);
ok $dbh->do('insert into foo values(@1, @2)', undef, 4, 4);
ok $dbh->do(
'update foo set id = $1 where value = $2 and id is not $1',
undef, 3, 4
);
my ($count) = $dbh->selectrow_array(
'select count(id) from foo where id = ? and value = ?',
undef, 3, 4
);
ok $count == 2;