1

我正在使用以下代码从我们的服务提供商那里为 LBS 提取数据。我想做的是将收到的信息加载到 mysql 中。

使用此代码我没有收到任何错误,并且位置和地图 API 运行良好,但它根本没有将绘制的数据放入 mysql 中。

<?php
function parseXML($fstr,$tstr_start,$tstr_end) {

if ( ! strstr($fstr,$tstr_start) || !strstr($fstr,$tstr_end) ){
return ;
}

$start = strpos($fstr,$tstr_start) + strlen($tstr_start);
$stop = strpos($fstr,$tstr_end, $start);
$length = $stop - $start;
return trim(substr($fstr, $start, $length));

}
define ("MAP_API_KEY","***");
define ("MAP_BASE_URL","http://maps.googleapis.com/maps/api/staticmap?");
$Data = $GLOBALS["HTTP_RAW_POST_DATA"];

//--- Get XML data into variables
$DataAry['ResponseType'] = parseXML($Data,'Response Type="','"');
$DataAry['RefNo'] = parseXML($Data,'RefNo="','"');
$DataAry['SeqNo'] = parseXML($Data,'SeqNo="','"');
$DataAry['Network'] = parseXML($Data,'<NetworkID>','</NetworkID>');
$DataAry['Lat'] = (int) parseXML($Data,'<Lat>','</Lat>');
$DataAry['Lon'] = (int) parseXML($Data,'<Lon>','</Lon>');
$DataAry['Accuracy'] = parseXML($Data,'<Accuracy>','</Accuracy>');
$DataAry['DateTime'] = parseXML($Data,'<DateTime>','</DateTime>');

$DataAry["Lat"] = $DataAry['Lat']/1000000;
$DataAry["Lon"] = $DataAry["Lon"]/1000000;

$con = mysql_connect("localhost","****","****");
if (!$con)
{
die('Could not connect: ' . mysql_error());
} 

mysql_select_db("****", $con);

$sql="INSERT INTO trace (Lat, Lon, DateTime, RefNo)
VALUES
('$_POST[Lat]','$_POST[Lon]','$_POST[DateTime]','$_POST[RefNo]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}

// ---Create link to map
$link = MAP_BASE_URL . "center={$DataAry['Lat']},    
{$DataAry['Lon']}&zoom=15&size=500x500&key=" . MAP_API_KEY . "&sensor=true&markers=      
{$DataAry['Lat']},{$DataAry['Lon']}";

$handle = fopen("requests.php","c");
fwrite($handle, "<br/>Location Request @ ". date("Y-m-d H:i:s")  . "<br/><textarea      
style='width:500px;height:200px' readonly>" . $GLOBALS["HTTP_RAW_POST_DATA"] . " 
</textarea><br/><img  style='border:1px solid #000;width:500px;height:500px'  
src='$link'/><hr/>");
fclose ($handle);

echo "done!";
?>

但是它确实按照要求将其放入 requests.php 页面,但我需要将信息提取到 msql

4

1 回答 1

0

$_POST第一个问题是数组的字符串键索引周围没有引号。您可能想要放入!mysql_query($sql,$con)一个 try-catch 以查看您是否捕获任何错误。此外,不推荐在 PHP 中使用 mysql_* 函数,不应再使用。因为您使用的是 mysql_* 函数,所以您也容易受到 SQL 注入的攻击。

于 2013-02-06T11:52:07.200 回答