At 14:38 24/07/00 +0000, Alan Horn wrote:
>
>Hi,
>
>This may actually be more of a limitation with the DBD::Pg perl driver.
>I'm not sure.
>
>Basically I'm using DBD::Pg in a perl script which inserts data into a
>very simple table.
>
>The statement I'm using is thus :
>
>my($sth) = $dbh->prepare("insert into maintenance (sno, date, data) values
>('$sno', '$date', '$tmpstring')");
>
>(all on one line of course...)
>
>My problem is this. $tmpstring may well contain embedded newlines or '
>characters (these are the two characters I've had problems with so far).
I use embedded chars all the time, but with placeholders in the query. Try:
my($sth) = $dbh->prepare("insert into maintenance (sno, date, data) values
(?, ?, ?)");
then
if (!$sth->execute($sno, $date, $tmpstring))
die_horribly....
this way you'll get the value out of preparing the statement. You might
also want to use 'prepare_cached'.
I don't know if your original query should work, but it will have all sorts
of problems if, eg, you have a "'" in one of the strings.
----------------------------------------------------------------
Philip Warner | __---_____
Albatross Consulting Pty. Ltd. |----/ - \
(A.C.N. 008 659 498) | /(@) ______---_
Tel: (+61) 0500 83 82 81 | _________ \
Fax: (+61) 0500 83 82 82 | ___________ |
Http://www.rhyme.com.au | / \|
| --________--
PGP key available upon request, | /
and from pgp5.ai.mit.edu:11371 |/