2016-01-17 48 views
1
$temp_address=$_POST["address"]; 
//echo ; 
$ids=$_POST["id"]; 

$sql = "INSERT INTO TestData (Id,Address, Lat_of_house, Long_of_house, Lat_of_obs, Long_of_obs, ans) 
VALUES ($ids, $temp_address, $latHouse, $lngHouse,$latObs,$lngObs, $ans)"; 

(uptill here..code)检查对应于你的MySQL服务器版本正确的语法错误手动

当我尝试回声temp_address的价值它输出右值。
当我对数据库中的地址列进行硬编码时,它将再次存储正确的值。只有当我尝试将temp_address存储在数据库中时(如上所示),它才会显示语法错误。我使用varchar(255)作为地址列的数据类型。 那种地址值的我想存储包括 - “201加利福尼亚州大道,宾夕法尼亚州匹兹堡” 和特定错误我得到的是:

Error: INSERT INTO TestData (Id,Address, Lat_of_house, Long_of_house, Lat_of_obs, Long_of_obs, ans) VALUES (54, 201 California Ave, Pittsburgh, PA, 40.503636, -80.07327099999998,40.50366484227394,-80.07328441104505, 3.4016586537572553) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'California Ave, Pittsburgh, PA, 40.503636, -80.07327099999998,40.50366484227394,' at line 1

+2

未加引号的字符串 –

+2

'$ temp_address'是一个字符串吗?字符串需要引用,你也可以使用这个SQL注入。 – chris85

回答

0

你应该把字符串2 ',您的查询应该是:

$sql = "INSERT INTO TestData (Id,Address, Lat_of_house, 
Long_of_house, Lat_of_obs, Long_of_obs, ans) 
VALUES ($ids, '$temp_address', '$latHouse', 
'$lngHouse','$latObs','$lngObs', '$ans')"; 
相关问题