pg_exec error
Ethan Alpert
ealpert at DIGITALGLOBE.COM
Fri Jun 10 13:22:22 PDT 2005
Try these: You really need to pick up a php book cause this is basic PHP
and has nothing to do with postgis. If something doesn't work right use
echo and write a test case.
<?php
$pointx = 100.0;
$pointy = 200.0;
$geom = 'GeometryFromText(\'POINT(' . $pointx . ' ' . $pointy .
')\',-1)';
echo $geom;
echo "<br>";
$geom = "GeometryFromText('POINT($pointx $pointy)',-1)";
echo $geom;
?>
-----Original Message-----
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On
Behalf Of Randy James
Sent: Friday, June 10, 2005 2:11 PM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] pg_exec error
Hi Mark
I've tried a number of differant ways,
POINT('pointx pointy')
POINT(''pointx' 'pointy'')
POINT("'pointx' 'pointy'")
POINT(pointx pointy)
with what you suggest i get:
Warning: pg_exec(): Query failed: ERROR: syntax error at end of input at
character 113 in /var/www/html/gis/create/write_postgres.phtml on line
19
I am guessing that something else i am doing is wrong. I counted the
characters and 113 is at the end of "pointy)"
--- Mark Cave-Ayland <m.cave-ayland at webbased.co.uk> wrote:
>
> > -----Original Message-----
> > From: UMN MapServer Users List
> > [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of Randy James
> > Sent: 10 June 2005 19:44
> > To: MAPSERVER-USERS at LISTS.UMN.EDU
> > Subject: Re: [UMN_MAPSERVER-USERS] pg_exec error
> >
> >
> > Yes it it PHP and yes thats how i want it to look:
> >
> > GeometryFromText('POINT(575618 5614867)',-1);
> >
> > And ok i'll check out the '"
>
>
> Hi Randy,
>
> In PHP there are two types of string delimiters: ' and ". If a string
> is surrounded by 's then any text between the 's is assigned directly
> to the variable. However, if a string is surrounded by "s then any
> variables referenced in the string, e.g. $myvar, are substituted by
> their actual value.
>
> For example:
>
> $price = 10.0;
> $myvar = 'The price of the dollar is $price';
> echo $myvar;
>
> -> The price of the dollar is $price
>
> $price = 10.0;
> $myvar = "The price of the dollar is $price";
> echo $myvar;
>
> -> The price of the dollar is 10.0
>
>
> I must admit that I don't recommend using "s for strings since you
> inevitably forget to escape the parameters beforehand which can leave
> you vunerable to injection attacks. I hope this explains exactly how
> your query works though.
>
> Anyway the reason your query fails is that you've got an extra set of
> 's around your coordinates which causes your geometry to look like
> POINT('575618' '123456') instead of POINT(575618 123456). So removing
> the 's around $pointx and $pointy should solve the problem for you,
> e.g.
>
> pg_exec($connection, "INSERT INTO sites
> VALUES('$q_nxt_gid','$id','$label','$site_id','$comments',GeometryFrom
> Text('
> POINT($pointx $pointy)',-1)");
>
>
> Hope this helps,
>
> Mark.
>
> ------------------------
> WebBased Ltd
> 17 Research Way
> Tamar Science Park
> Plymouth
> PL6 8BT
>
> T: +44 (0)1752 797131
> F: +44 (0)1752 791023
> W: http://www.webbased.co.uk
>
>
>
__________________________________
Discover Yahoo!
Have fun online with music videos, cool games, IM and more. Check it
out!
http://discover.yahoo.com/online.html
More information about the MapServer-users
mailing list