pg.ddx.io pgsql-interfaces@postgresql.org mailing list archive
help / color / mirror / Atom feedRE: your mail (Should have been problems with ')
5+ messages / 2 participants
[nested] [flat]
* RE: your mail (Should have been problems with ')
@ 1998-11-23 14:45 Ken Wills <gfccall@mailbag.com>
0 siblings, 2 replies; 5+ messages in thread
From: Ken Wills @ 1998-11-23 14:45 UTC (permalink / raw)
To: pgsql-interfaces@hub.org
Firstly, thanks to everone who replied so fast!!
> I have an annoying problem, that I just haven't been able to get around yet. When I parse the
> input from a form and go to insert it eveything works fine as long as the user doesn't use
> the ' character in the input. I've tried using qw{} and qq{}, which either don't interpolate
>> or give me errors. Anyone have any suggestions? Postgres 6.4, Apache 1.3, mod_perl 1.16.
>> The insert statement is below.
>escape your imput strings first...something like:
a number of people suggested something like:
>$phone_number =~ s/'/\\'/g;
Ok, I tried this - it does what it looks like is supposed to. If I enter:
John's shoes, I get John\'s shoes. Unfortunatly I still get an error. If i enter it
as John's shoes' ,I dont get an error. Seems like it only likes them in pairs. The funny thing is if
I supply them in pairs, it inserts the whole string, I'd have thought that it would parse them
or something, and only insert the values between the '.
Ken
^ permalink raw reply [nested|flat] 5+ messages in thread
* RE: [INTERFACES] RE: your mail (Should have been problems with ')
@ 1998-11-23 15:16 Ken Wills <gfccall@mailbag.com>
parent: Ken Wills <gfccall@mailbag.com>
1 sibling, 0 replies; 5+ messages in thread
From: Ken Wills @ 1998-11-23 15:16 UTC (permalink / raw)
To: pgsql-interfaces@hub.org
I just ended up doing:
$phone_number =~ s/'/\\'\\'/g;
to substitute two ' for every '.
Thanks again to all for the suggestion.
>a number of people suggested something like:
>>$phone_number =~ s/'/\\'/g;
>Seems like it only likes them in pairs.
Ken
^ permalink raw reply [nested|flat] 5+ messages in thread
* Re: [INTERFACES] RE: your mail (Should have been problems with ')
@ 1998-11-23 15:35 The Hermit Hacker <scrappy@hub.org>
parent: Ken Wills <gfccall@mailbag.com>
1 sibling, 1 reply; 5+ messages in thread
From: The Hermit Hacker @ 1998-11-23 15:35 UTC (permalink / raw)
To: gfchelp@gflesch.com; +Cc: pgsql-interfaces@hub.org
On Mon, 23 Nov 1998, Ken Wills wrote:
> Firstly, thanks to everone who replied so fast!!
>
> > I have an annoying problem, that I just haven't been able to get around yet. When I parse the
> > input from a form and go to insert it eveything works fine as long as the user doesn't use
> > the ' character in the input. I've tried using qw{} and qq{}, which either don't interpolate
> >> or give me errors. Anyone have any suggestions? Postgres 6.4, Apache 1.3, mod_perl 1.16.
> >> The insert statement is below.
>
> >escape your imput strings first...something like:
>
> a number of people suggested something like:
>
> >$phone_number =~ s/'/\\'/g;
>
> Ok, I tried this - it does what it looks like is supposed to. If I enter:
> John's shoes, I get John\'s shoes. Unfortunatly I still get an error. If i enter it
> as John's shoes' ,I dont get an error. Seems like it only likes them in pairs. The funny thing is if
> I supply them in pairs, it inserts the whole string, I'd have thought that it would parse them
> or something, and only insert the values between the '.
Have you tried doing:
print STDERR ${inputstr}, "\n";
To see what your 'insert into...' string looks like exactly? It looks
like you are missing a ' in there somewhere when you are generating yoru
string...
Marc G. Fournier
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org
^ permalink raw reply [nested|flat] 5+ messages in thread
* RE: [INTERFACES] RE: your mail (Should have been problems with ')
@ 1998-11-23 15:58 Ken Wills <gfccall@mailbag.com>
parent: The Hermit Hacker <scrappy@hub.org>
0 siblings, 1 reply; 5+ messages in thread
From: Ken Wills @ 1998-11-23 15:58 UTC (permalink / raw)
To: pgsql-interfaces@hub.org
>>
>> >$phone_number =~ s/'/\\'/g;
>>
>> Ok, I tried this - it does what it looks like is supposed to. If I enter:
>> John's shoes, I get John\'s shoes. Unfortunatly I still get an error. If i enter it
>> as John's shoes' ,I dont get an error. Seems like it only likes them in pairs. The funny thing is if
>> I supply them in pairs, it inserts the whole string, I'd have thought that it would parse them
>> or something, and only insert the values between the '.
>Have you tried doing:
> print STDERR ${inputstr}, "\n";
>To see what your 'insert into...' string looks like exactly? It looks
>like you are missing a ' in there somewhere when you are generating yoru
>string...
I tried this, and can see whats causing the error. From apache's error log:
--snip--
\'
\'
\'
none7
[Mon Nov 23 09:54:31 1998] [error] DBD::Pg::db do failed: ERROR: Bad datetime external representation
'Mon Nov 23 09NULLNULL 1998'
--snip--
the time field is the last one to go in here. the insert string looks like:
my $query_string=qq{INSERT INTO CALLS (ca_service_id, ca_org_name, ca_phone_number, ca_status,
ca_product, ca_problem, ca_resolution, ca_contact_name, ca_assigned, ca_date) VALUES ('$service_id',
'$org_name', '$phone_number', '$status', '$product', '$problem', '$resolution', '$contact',
'$assigned', '$time_now')};
It seems like I am getting an extra \' from somewhere. I'll take a look at that. Thanks again to all.
Ken
^ permalink raw reply [nested|flat] 5+ messages in thread
* RE: [INTERFACES] RE: your mail (Should have been problems with ')
@ 1998-11-23 17:31 The Hermit Hacker <scrappy@hub.org>
parent: Ken Wills <gfccall@mailbag.com>
0 siblings, 0 replies; 5+ messages in thread
From: The Hermit Hacker @ 1998-11-23 17:31 UTC (permalink / raw)
To: gfchelp@gflesch.com; +Cc: pgsql-interfaces@hub.org
On Mon, 23 Nov 1998, Ken Wills wrote:
>
> > print STDERR ${inputstr}, "\n";
>
> >To see what your 'insert into...' string looks like exactly? It looks
> >like you are missing a ' in there somewhere when you are generating yoru
> >string...
>
> I tried this, and can see whats causing the error. From apache's error log:
> --snip--
> \'
> \'
> \'
> none7
> [Mon Nov 23 09:54:31 1998] [error] DBD::Pg::db do failed: ERROR: Bad datetime external representation
> 'Mon Nov 23 09NULLNULL 1998'
>
> --snip--
> the time field is the last one to go in here. the insert string looks like:
> my $query_string=qq{INSERT INTO CALLS (ca_service_id, ca_org_name, ca_phone_number, ca_status,
> ca_product, ca_problem, ca_resolution, ca_contact_name, ca_assigned, ca_date) VALUES ('$service_id',
> '$org_name', '$phone_number', '$status', '$product', '$problem', '$resolution', '$contact',
> '$assigned', '$time_now')};
First, why not just put 'now' where '$time_now' is?
Second, what is the output in the Apache logs if you add:
print STDERR $query_string, "\n";
Right After the "my $query_string=" statement? You should get something
tha tlooks like:
INSERT INTO CALLS...
Marc G. Fournier
Systems Administrator @ hub.org
primary: scrappy@hub.org secondary: scrappy@{freebsd|postgresql}.org
^ permalink raw reply [nested|flat] 5+ messages in thread
end of thread, other threads:[~1998-11-23 17:31 UTC | newest]
Thread overview: 5+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
1998-11-23 14:45 RE: your mail (Should have been problems with ') Ken Wills <gfccall@mailbag.com>
1998-11-23 15:16 ` Ken Wills <gfccall@mailbag.com>
1998-11-23 15:35 ` The Hermit Hacker <scrappy@hub.org>
1998-11-23 15:58 ` Ken Wills <gfccall@mailbag.com>
1998-11-23 17:31 ` The Hermit Hacker <scrappy@hub.org>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox