Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax消息显示问题_Php_Ajax - Fatal编程技术网

Php Ajax消息显示问题

Php Ajax消息显示问题,php,ajax,Php,Ajax,我想我已经解决了这个问题,它与PDO的绑定参数有关,而不是将值包含在select语句中 现在谷歌搜索如何绑定数组值,其中每个查询类型的数组值的数量是可变的。例如,可能需要一个、两个或三个类别(col)值 我的主脚本向辅助脚本提交ajax请求 在大多数情况下,发送和接收两个参数。 服装部:男士时装,类别:外套和夹克 在除少数情况外的所有情况下,ajax查询都是成功的,并按预期返回。但是,对于某些参数对,页面或控制台中不显示任何内容 在生成查询后立即从查询脚本返回,我知道查询总是正常工作。(复制并粘

我想我已经解决了这个问题,它与PDO的绑定参数有关,而不是将值包含在select语句中

现在谷歌搜索如何绑定数组值,其中每个查询类型的数组值的数量是可变的。例如,可能需要一个、两个或三个类别(col)值

我的主脚本向辅助脚本提交ajax请求

在大多数情况下,发送和接收两个参数。 服装部:男士时装,类别:外套和夹克

在除少数情况外的所有情况下,ajax查询都是成功的,并按预期返回。但是,对于某些参数对,页面或控制台中不显示任何内容

在生成查询后立即从查询脚本返回,我知道查询总是正常工作。(复制并粘贴到phpMyAmdin中可以得到正确的结果集。)

因此,脚本的关键部分似乎是fetch例程。如何在下一行中捕获来自PDO的错误消息

$filtered_results = $filtered_statement->fetchAll(PDO::FETCH_ASSOC);

$debugInfo = array('debug' => vsprintf(str_replace("?", "%s", $filtered_statement->queryString), $opts ));
[编辑]

if ( is_array($filtered_results) ) {
$filtered_results = array_merge($debugInfo, $filtered_results);
} else {
$filtered_results = $debugInfo;
}
[/edit]
仅当查询成功时,才会返回调试信息

$filtered_results_json = json_encode($filtered_results);

echo( $filtered_results_json ); 

请告诉我一个解决方案,失败的查询将显示在调用脚本中。所需的数据在数据库中,因此我仍然无法显示故障消息。

您需要检查是否返回了数组。如果未找到任何内容,则不会返回任何数组-并且您不能使用array\u merge

$filtered_results = $filtered_statement->fetchAll(PDO::FETCH_ASSOC);

$debugInfo = array('debug' => vsprintf(str_replace("?", "%s", $filtered_statement->queryString), $opts )); 

if ( is_array($filtered_results) ) {
    $filtered_results = array_merge($debugInfo, $filtered_results);
} else {
    $filtered_results = $debugInfo;
}

$filtered_results_json = json_encode($filtered_results);

echo( $filtered_results_json ); 

也可以看到这一点:

如果您不知道错误的来源,为什么只共享“脚本的关键部分”?您甚至没有共享您的SQL查询或如何处理ajax调用。这里很难帮忙。但是,如果这是您可以共享的全部内容,并且假设您的ajax调用编写正确,请尝试使用
echo()
exit()手动调试
在PHP脚本中的不同位置,查看在打印ajax调用success/complete时是否获得预期结果。该脚本适用于提交给它的大多数参数对。我试图得到失败的查询,找出提交的参数出了什么问题,或者其他一些偶尔(尽管一贯)出现错误的东西。这是一个很大的帮助。谢谢现在我可以确定查询是正确的,即使它没有返回任何内容,我认为现在必须与PDO::FETCH例程相关。您也可以使用PDO检查行数,方法是:$filtered_statement->rowCount();不找到任何东西是否可以不是一个技术问题;我想这取决于你的业务环境。