我使用PHP文件返回JSON数组到iOS应用程序。正在咨询的表只有32条记录。如果我执行iOS应用程序,它会在调用PHP文件时接收到一个空数组。如果我在web浏览器上执行PHP,结果也是一个空数组。如果我直接在PHPMyAdmin中运行PHP文件中包含的查询,查询将显示正确的结果。
这是PHP文件:
<?php
$host= 'localhost';
$db = 'app_mujer';
$uid = 'XXXXXXXXXXXX';//
$pwd = 'XXXXXXXXXXXX';
$link = mysql_connect($host,$uid,$pwd) or die("No se puede conectar ");
mysql_query("SET NAMES 'utf8'");
mysql_select_db($db) or die ("No se puede seleccionar la bbdd");
$id= urldecode($_GET['id']);
$arr = array();
$rs = mysql_query("SELECT * FROM tbcoordenadas where titulo='$id'");
while ($obj = mysql_fetch_assoc($rs)){
$arr[] = $obj['procedencia'];
}
echo json_encode($arr);
?>
我已经检测到,只有当URL参数get by $id包含'&
如果我直接在PHPMyAdmin上运行以下查询,结果是预期的记录:
SELECT *
FROM `tbcoordenadas`
WHERE `titulo` = 'D & R'
欢迎任何帮助
我已经检测到,只有当URL参数get by $id包含'&
这就是问题所在。
http://www.example.com/example.php?id=1&2&3
对于这个请求,$_GET['id']的值将是1
(您期望它是1&2&3
)。这是因为&
符号用于添加另一个URL参数。
由于该值包含&
,因此需要在将ID发送到PHP脚本之前对其进行urlencode()处理。正如@Jared Farrish所指出的,应该对每个GET值都这样做(以防止类似这样的问题)。