我的表“info”有四列用户名,纬度,经度和文件名。我发送一个请求从android(客户端)获取给定的一组用户名,经度和纬度组合的特定文件名,这里是处理请求的代码的php(服务器端)...mysql查询问题
mysql_connect("localhost", "bb", "707") or die(mysql_error());
mysql_select_db("test1") or die(mysql_error());
$usrnm = $_REQUEST["username"];
$lat = $_REQUEST["lat"];
$lng = $_REQUEST["lng"];
$query = sprintf("SELECT filename FROM info WHERE username = '%s'"
,mysql_real_escape_string($usrnm)
,"AND latitude = %s",mysql_real_escape_string($lat)
,"and longitude = %s",mysql_real_escape_string($lng));
$result = mysql_query($query)
or die(mysql_error());
$row = mysql_fetch_array($result);
echo $row["filename"];
这里是问题: 如果我使用上面的查询,返回的文件名仅基于用户名,并且不考虑纬度和经度。简单来说,只有第一个“名称=值”对之后的where子句用于获取文件名...为什么?是查询错误还是有其他方法来做到这一点....我使用MYSQL
另一个观察:如果我硬编码的用户名,纬度和经度值,然后它返回正确的文件名...
请注意,您的代码看起来与SQL注入安全的,但不是因为你没有附上$瓦尔在单引号'''的查询字符串内。 – Johan 2011-05-28 22:06:51
@Johan:好,我应该注意到那时我发布了我的答案。 – thirtydot 2011-06-02 00:49:29