【发布时间】:2015-07-04 12:59:25
【问题描述】:
我正在使用 javascript 应用程序向服务器端请求搜索功能。它适用于某些查询,但不适用于其他查询。
对于某些查询,GET 请求没有返回任何响应,尽管在工作台中测试查询会返回数千条记录。我尝试打开错误 - 没有产生错误。我尝试增加内存限制 - 这不是罪魁祸首。我尝试输出 PDO 错误/警告 - 没有生成任何内容,PDO 实际上返回了记录,我使用 var_dump 验证了这一点,如下所示。
因此,总而言之,以下代码中的所有内容似乎都可以完美运行,直到负责将数组编码为 json 对象的最后一行 - 它没有任何回应。
感谢您为解决此问题提供的任何帮助。
PHP
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('memory_limit', '2048M');
$db = new PDO('mysql:host=localhost;dbname=mydb', 'root', '');
$search = $_GET['search'];
$searchBy = ( isset($_GET['searchBy']) && !empty($_GET['searchBy']) ) ? $_GET['searchBy'] : 'name';
$sql = "SELECT * FROM business WHERE name LIKE '%university%' GROUP BY id";
$query = $db->prepare($sql);
$query->execute();
$results = $query->fetchAll(); //query returns 5000+ records in under a second in workbench
$headers = array('Business', 'City', 'State', 'Zip', 'Phone');
$json = array("results" => $results, 'headers' => $headers, 'query' => $sql);
var_dump($json); //prints successfully
echo json_encode($json); // echos nothing!
【问题讨论】:
-
var_dump(json_encode($json));的 exact 输出是什么? -
然后改变它,例如如果你得到:
string(7) "[1,2,3]"-> 写类似:string(7) "[X,X,X]" -
将它存储在文件中一段时间,这样当它出错时,你就会得到实际生成的内容。
-
@AnchovyLegend 完全空白所以你甚至没有得到这个:
string(0) ""(还要确保你显示在源代码中!)? -
总是运行一些有用的东西! :) 很高兴它被整理出来了。