mirror of
https://github.com/DBD-SQLite/DBD-SQLite
synced 2025-06-07 14:19:10 -04:00
fix $dbh->quote(blob, SQL_BLOB) #51
This commit is contained in:
parent
f9a8feccc0
commit
e3bce4ab39
2 changed files with 20 additions and 0 deletions
|
@ -251,6 +251,16 @@ sub ping {
|
|||
return $dbh->FETCH('Active') ? 1 : 0;
|
||||
}
|
||||
|
||||
sub quote {
|
||||
my ($self, $value, $data_type) = @_;
|
||||
return "NULL" unless defined $value;
|
||||
if ($data_type and $data_type == DBI::SQL_BLOB) {
|
||||
return q(X') . unpack('H*', $value) . q(');
|
||||
}
|
||||
$value =~ s/'/''/g;
|
||||
return "'$value'";
|
||||
}
|
||||
|
||||
sub get_info {
|
||||
my ($dbh, $info_type) = @_;
|
||||
|
||||
|
|
10
t/20_blobs.t
10
t/20_blobs.t
|
@ -66,6 +66,13 @@ SCOPE: {
|
|||
ok( $sth->bind_param(1, 3), '->bind_param' );
|
||||
ok( $sth->bind_param(2, undef, SQL_BLOB), '->bind_param' );
|
||||
ok( $sth->execute, '->execute' );
|
||||
|
||||
ok my $quoted_blob = $dbh->quote($blob, SQL_BLOB);
|
||||
ok( $dbh->do("INSERT INTO one VALUES( 4, $quoted_blob )"), 'insert quoted blob' );
|
||||
ok my $quoted_empty = $dbh->quote('', SQL_BLOB);
|
||||
ok( $dbh->do("INSERT INTO one VALUES( 5, $quoted_empty )"), 'insert quoted empty string' );
|
||||
ok my $quoted_undef = $dbh->quote(undef, SQL_BLOB);
|
||||
ok( $dbh->do("INSERT INTO one VALUES( 6, $quoted_undef )"), 'insert quoted undef' );
|
||||
}
|
||||
|
||||
# Now, try SELECT'ing the row out.
|
||||
|
@ -78,6 +85,9 @@ SCOPE: {
|
|||
[ 1, $blob ],
|
||||
[ 2, '' ],
|
||||
[ 3, undef ],
|
||||
[ 4, $blob ],
|
||||
[ 5, '' ],
|
||||
[ 6, undef ],
|
||||
], 'Got the blob back ok' );
|
||||
ok( $sth->finish, '->finish' );
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue