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