2016-01-17 42 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')"; 
相關問題