[英]Getting list of all users from Database using php PDO
I am trying to get a list of players from database with specific range of latitude and longitude. 我正在尝试从数据库中获取具有特定纬度和经度范围的玩家列表。 The query works fine and give me results.
查询工作正常,并给我结果。 However these results may include more than one player.
但是,这些结果可能包括多个玩家。 Current code as shown below gives me JSON Encoded only one player.
如下所示的当前代码为我提供了JSON编码,仅一个播放器。 How can I get all players JSON ENCODED.
如何获得所有播放器的JSON编码。
function GetPlayersInRange()
{
try {
$conn = $this->GetDBConnection();
$long1 = trim($_REQUEST['long1']);
$long2 = trim($_REQUEST['long2']);
$lat1 = trim($_REQUEST['lat1']);
$lat2 = trim($_REQUEST['lat2']);
$statement = $conn->prepare('SELECT * FROM players WHERE longitude > :long1 AND longitude < :long2 AND latitude > :lat1 AND latitude < :lat2');
$statement->bindParam(':long1', $long1, PDO::PARAM_STR);
$statement->bindParam(':long2', $long2, PDO::PARAM_STR);
$statement->bindParam(':lat1' , $lat1, PDO::PARAM_STR);
$statement->bindParam(':lat2' , $lat2, PDO::PARAM_STR);
$statement->execute();
if(!($row = $statement->fetch(PDO::FETCH_ASSOC)))
{
return "No Players";
}
$conn = null;
} catch(PDOException $e) {
throw $e;
}
return $row;
}
You shouldn't be comparing string to int/double in your query. 您不应该在查询中将字符串与int / double进行比较。 When using PDO::PARAM_STR, it'll wrap your data in single quotes.
使用PDO :: PARAM_STR时,它会将数据包装在单引号中。 Try to use PDO::PARAM_INT here.
尝试在此处使用PDO :: PARAM_INT。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.