Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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调用只返回“status 200 OK”,但没有包含数据库结果的数组?_Php_Jquery_Mysql_Ajax_Pdo - Fatal编程技术网

对PHP的Ajax调用只返回“status 200 OK”,但没有包含数据库结果的数组?

对PHP的Ajax调用只返回“status 200 OK”,但没有包含数据库结果的数组?,php,jquery,mysql,ajax,pdo,Php,Jquery,Mysql,Ajax,Pdo,我对使用PDO连接到mysql的php文件进行AJAX调用,并将结果打印到控制台,但显示的唯一结果是: Object {readyState: 4, responseText: "", status: 200, statusText: "OK"} 同样的调用适用于msqli,并显示带有结果的json,我做错了什么 代码如下: 自定义js: /*eslint-env jquery, browser*/ $(document).ready(function(){ $("#botono").cl

我对使用PDO连接到mysql的php文件进行AJAX调用,并将结果打印到控制台,但显示的唯一结果是:

Object {readyState: 4, responseText: "", status: 200, statusText: "OK"}
同样的调用适用于msqli,并显示带有结果的json,我做错了什么

代码如下:

自定义js:

 /*eslint-env jquery, browser*/
$(document).ready(function(){

$("#botono").click(function(){

    $.ajax({
        type: 'GET',
        url: 'phpf/retraerClientes.php',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        success: function(response) {
            console.log(response);
        },
        error: function(error) {
            console.log(error);
        }
    });

 });

});
PHP:

更新: 我找到了答案:

$accents = $conn->query("SET NAMES 'utf8'"); 

那一行丢失了,我的记录带有重音符号,这使得最终的json损坏并产生了误报,正如我看到的,您需要用PHP执行查询:

ini_set('display_errors', 1); 
error_reporting(E_ALL);

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!IS_AJAX) {die('');}

$configs = include('config.php');

 try{

$conn = new      PDO("mysql:host=".$configs["host"].";dbname=".$configs["database"],$configs["use    rname"],$configs["password"]);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM prueba";
$results = $conn->prepare($sql)->execute()->fetchAll(PDO::FETCH_ASSOC);
$jsonFinal = json_encode($results);
echo $jsonFinal;

}catch(PDOException $ex){
    echo 'Connection With Database Failed: '.$ex->getMessage();
}

你能为$result{readyState:4,responseText:boolfalse发布一个var_转储吗↵, 状态:200,状态文本:OK}这是javascript中的var_转储吗?我的意思是在PHPsorry中,我使用的是bluemix,不知道如何正确使用,但我找到了答案:$accents=$conn->querySET name'utf8';那一行丢失了,我的记录带有重音,这使得最终的json损坏并产生了误报。该方法的结果相同
ini_set('display_errors', 1); 
error_reporting(E_ALL);

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
if(!IS_AJAX) {die('');}

$configs = include('config.php');

 try{

$conn = new      PDO("mysql:host=".$configs["host"].";dbname=".$configs["database"],$configs["use    rname"],$configs["password"]);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM prueba";
$results = $conn->prepare($sql)->execute()->fetchAll(PDO::FETCH_ASSOC);
$jsonFinal = json_encode($results);
echo $jsonFinal;

}catch(PDOException $ex){
    echo 'Connection With Database Failed: '.$ex->getMessage();
}