In article <kk8z17obm7.fsf@mimer.null.dk>, Thorbjørn Ravn Andersen wrote:
> spamtrap@mogul.dk (Morten Guldager) writes:
>
>> Jeg ville gerne undgå at skulle escape binære data.
>>
>> Jeg havde forestillet mig at bruge DBI med placeholders
>> til at hælde data ind i databasen.
>
> Brug PreparedStatement.
Hmm, det synes jeg allerede at jeg gør. Eller mener du noget helt andet
med PreparedStatement?
Min tabel ser iøvrigt sådan her ud:
Table "x"
Column | Type | Modifiers
--------+------+-----------
a | text | not null
Og programmet sådan her:
#!/usr/bin/perl -w
use strict;
use DBI;
my $dbh = DBI->connect('DBI:Pg:dbname=x;host=x', 'x', 'x');
die "dumme postgres\n" unless defined $dbh;
$dbh->{AutoCommit} = 0;
$dbh->{pg_auto_escape} = 1;
my $insert_sth = $dbh->prepare(<<SQL);
insert
into x
(a)
values (?)
SQL
my $buffer = pack 'c*', 0..255;
$insert_sth->execute($buffer);
$dbh->commit;
$dbh->disconnect;
Et andet sted i tråden blev der påpeget at jeg havde glemt at specificere
mit setup:
- 2 linux maskiner, en rdbms og en klient.
- postgres 7.2.2
- klienten bruger perl og DBD:Pg
/Morten