php - Syntax error sql and save values in array -
i try create query pdo. want rows saved in array $result, have value between $lo
, $loo
or/ , $la
, $laa
. i´m new in pdo sorry difficult question.
error message:
sqlstate[42000]: syntax error or access violation: 1064 have error in sql syntax; check manual corresponds mysql server version right syntax use near '<= 0 or latitude >= 0 , <= 0) order date' @ line 1
$range = 'range'; $_cookie["$range"]; $longitude = 'longitude'; $_cookie["$longitude"]; $latitude = 'latitude'; $_cookie["$latitude"]; $onemile = 0,005581257; $le = $range * $onemile; $lo = $longitude + $le; $loo = $longitude - $le; $la = $latitude + $le; $laa = $latitude - $le; $hostname='localhost'; $user='root'; $password=''; try { $dbh = new pdo("mysql:host=$hostname;dbname=log",$user,$password); $dbh->setattribute(pdo::attr_errmode, pdo::errmode_exception); // <== add line $sql = "select id, autorid, date, longitude, latitude, title, text post (longitude >= $loo , <= $lo or latitude >= $laa , <= $la) order date"; if ($res = $dbh->query($sql)) { $result = $res->fetchall(); print_r($result); } } catch(pdoexception $e) { echo $e->getmessage(); }
you can't chain comparisons that. each statement must include identifier doing comparison on.
you need use parenthesis enforce operator precedence (that going next error).
select id, autorid, date, longitude, latitude, title, text post ( longitude >= $loo , longitude <= $lo ) or ( latitude >= $laa , latitude <= $la ) order date
Comments
Post a Comment