Thread: how do i insert an empty string ?
FAQ: A search yielded nothing explicit... I have an INSERT statement: INSERT INTO metadata (md5, origin, name, value) VALUES ('fd859f263bd0579935f2146a22d24f32', 'EXIF', 'UserComment', '') but this fails (using Perl DBI, DBD::Pg) because $dbh->quote() returns two single quotes, which fails because something along the way thinks this is a single quote. I do NOT want to insert a NULL but an empty string... (This is either doing a $dbh->do(...) or a prepare ... execute without $dbh->quote()) Peter
Sorry: 7.3 beta 2 on OpenBSD 3.2 Peter ----- Original Message ----- From: "Peter Galbavy" <peter.galbavy@knowtion.net> To: <pgsql-sql@postgresql.org> Sent: Tuesday, October 15, 2002 11:01 AM Subject: [SQL] how do i insert an empty string ? > FAQ: A search yielded nothing explicit... > > I have an INSERT statement: > > INSERT INTO metadata (md5, origin, name, value) > VALUES ('fd859f263bd0579935f2146a22d24f32', 'EXIF', > 'UserComment', '') > > but this fails (using Perl DBI, DBD::Pg) because $dbh->quote() returns two > single quotes, which fails because something along the way thinks this is a > single quote. I do NOT want to insert a NULL but an empty string... > > (This is either doing a $dbh->do(...) or a prepare ... execute without > $dbh->quote()) > > Peter > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org >
Please ignore me for now. The string is NOT empty, but full of NUL characters. My bad for not using 'less' to view the output... Peter ----- Original Message ----- From: "Peter Galbavy" <peter.galbavy@knowtion.net> To: <pgsql-sql@postgresql.org> Sent: Tuesday, October 15, 2002 11:01 AM Subject: [SQL] how do i insert an empty string ? > FAQ: A search yielded nothing explicit... > > I have an INSERT statement: > > INSERT INTO metadata (md5, origin, name, value) > VALUES ('fd859f263bd0579935f2146a22d24f32', 'EXIF', > 'UserComment', '') > > but this fails (using Perl DBI, DBD::Pg) because $dbh->quote() returns two > single quotes, which fails because something along the way thinks this is a > single quote. I do NOT want to insert a NULL but an empty string... > > (This is either doing a $dbh->do(...) or a prepare ... execute without > $dbh->quote()) > > Peter > > > ---------------------------(end of broadcast)--------------------------- > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org >
On Tue, 15 Oct 2002, Peter Galbavy wrote: > FAQ: A search yielded nothing explicit... > > I have an INSERT statement: > > INSERT INTO metadata (md5, origin, name, value) > VALUES ('fd859f263bd0579935f2146a22d24f32', 'EXIF', > 'UserComment', '') > > but this fails (using Perl DBI, DBD::Pg) because $dbh->quote() returns two Since you are using DBI, why not bind the variables and be done with it? this would become $query = $db->prepare("INSERT INTO metadata (md5, origin, name, value) VALUES (?, ?, ?, ?)"); $query->execute($md5, $origin, $name, $value); This way you don't have to deal with double quoting and all that. (You can also call bind_param, but I find it easier to just pass args into execute) ------------------------------------------------------------------------------ Jeff Trout <jeff@jefftrout.com> http://www.jefftrout.com/ Ronald McDonald, with the help of cheese soup, controls America from a secret volkswagon hidden in the past -------------------------------------------------------------------------------