iam試圖讓一個PHP函數從url中取出參數並將其插入到數據庫中 我試圖通過在url中輸入「http://acstracking.com/dat.php?lat=0&lng=0」來檢查它,但是沒有插入發生什麼可以是問題?從url獲取參數
<?php
$Lat = $_GET['lat']; //Get Latitude Data
$Long = $_GET['lng']; // Get Longitude Data
$type = "restaurant"; //marker type
$name = "A.C.S"; //Name
$add= "Bahrain";
$dbName = "uobtrack_acstracking"; //Database name
$db = mysql_connect ("localhost","username", "password") or die("Unable To Connect "); //Connect to database
$test= mysql_select_db ($dbName,$db) or die("Unable to select database"); //Test Connection
$query = "INSERT INTO `uobtrack_acstracking`.`markers` (`name`, `address`, `lat`, `long`, `type`) VALUES ('$name', '$add', '$Lat', '$Long', '$type');"; //Insert Query
$Alpha = @mysql_query($query,$db); //Execute Query
if($Alpha)
echo "<br> insertion succeeded...";
else
echo "<br> insertion failed...";
mysql_close($db); //Close Connection
}
?>
看到的任何錯誤雖然不是說,但直接插入用戶輸入數據到數據庫可能是一個很大的錯誤,我會建議使用PDO庫適當的綁定,以便沒有註冊機會 – Neo
從@mysql_query中刪除@以查看錯誤信息,同時使用echo mysql_errno($ db)。「:」。mysql_error($ db)。「\ n」;打印mysql錯誤 –
mysql- lib自PHP 5.5.0起棄用,所以最好使用mysqli(例如mysqli_query())。另外,當你直接使用用戶輸入時,你的查詢對於SQL注入來說是多變的! 刪除查詢前面的@以獲取調試錯誤消息。你檢查類型的可兼容性嗎?你輸入所有的值作爲字符串。如果將lat域定義爲整數,可能會成爲問題。 – newBee