pg_exec error

Randy James rjames57 at YAHOO.COM
Fri Jun 10 13:10:52 PDT 2005


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',GeometryFromText('
> 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