这是一个服务器范围的问题,并不局限于这个特定的脚本,但无论如何我都会提供代码。
include_once('LIB/LIB_data.php');
$id = $_GET['id'];
$columns = Data::getTableColumns('table');
if(!in_array($id, $columns))
{
exit("Illegal value");
}
else
{
$dbh = new PDO('/* connects successfully */');
$sth = $dbh->prepare("SELECT DISTINCT $id FROM table");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
$fields = array();
foreach($result as $set)
{
$val = $set[$id];
array_push($fields, "{\"optionValue\": \"$val\", \"optionDisplay\": \"$val\"}");
}
$return_val = '[' . implode(",", $fields) . ']';
print($return_val);
}
应该返回这样的内容:
[{"optionValue": "f", "optionDisplay": "f"},{"optionValue": "m", "optionDisplay": "m"}]
相反,就是这样:
`[{"optionValue": "f", "optionDisplay": "f"},{"optionValue": "m", "optionDisplay": "m"}]
它与echo的作用相同。在我用任何一个输出的绝对所有内容之前有一个反复。我不在任何地方使用反引号。我正在使用PHP 5.2.10,如果有帮助的话。这是一个奇怪的错误,我无法在其他任何地方找到提及,所以任何帮助将不胜感激。