I'm trying to setup some scripts that will allow me to use Perl DBI to
INSERT into my table.  However, I have not had any success at all.  I'm
using perl CGI as well so I've granted ALL permissions on my table to
the apache user and I still can't INSERT.  I can, however, UPDATE and
SELECT on the table, just not INSERT.

Here is a piece of my code:

#--Establish the DB connection
#--Assign the DB name
$dbName = 'checkbook';

#--Connect to the Pg DB using DBI
my $dbh = DBI->connect("dbi:Pg:dbname=$dbName");

$sth = $dbh->do("INSERT INTO transactions
(date,description,amount,confirmation,nameid,typeid) VALUES
('$datePaid','$description','$amount','$confirmation',$nameid,$typeid)" )
;

What kind of error message are you getting?


With just a quick glance, I would say check your quoting. i.e., is $amount supposed to be quoted?

You can do parameter binding on $dbh->do statements also, like this:

$dbh->do("INSERT INTO transactions
(date,description,amount,confirmation,nameid,typeid) VALUES
(?,?,?,?,?,?)", undef, ($datePaid, $description, $amount, $confirmation, $nameid, $typeid));


That takes care of all your quoting so you don't have to worry about it.

Also, you probably want to post this to the INTERFACES list.

--Jeremy


---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match

Reply via email to