我有一个小的 ajax 脚本,它获取一些 json 数据并在用户进行选择时填充一些表单字段。
今天早上我注意到,当我在开发服务器上运行 ajax 时出现错误,但在运行生产端时它可以工作。我假设这是由于服务器之间的错误报告存在一些差异,但我不知道为什么。
开发 PHP 版本:5.3.13 产品 PHP 版本:5.3.16
我已经跟踪了一些变量的错误,这些变量只有在额外的行从数据库中出来时才设置。我正在检索 1 到 3 行。
第一行分配给 $array1,其他行作为 $sec_row[0] 和 $sec_row[1] 进入它们自己的数组。
$array1 = ('Name'=>'George','Address'=>'52 Smith St',....etc);
$sec_row[0] = ('Alias1'=>'Jorge','Location'=>'SimCity',....etc);
echo json_encode(array('result1'=>$array1,'result2'=>$sec_row[0],'result3'=>$sec_row[1]);
注意 $sec_row 仅在找到其他结果时设置。
在未定义 $sec_row 的实时站点上,ajax 将 result2 和 result3 返回为 NULL。但是在我的本地主机上的开发服务器上,它给了我一个“未定义的索引”(如果只设置了 $sec_row[0])或“未定义的变量”(如果没有设置 $sec_row)错误。
我已经通过在编码 json 之前手动设置 $sec_row 在本地修复了错误,但我不明白为什么我需要在本地而不是在生产服务器上执行此操作。
关于什么设置可能导致这种情况的任何建议?