我正在玩jQuery的$ .ajax而且我不确定我应该如何做以下事情:
这是我的javascript(现在它只是嵌入在html页面中)
$.ajax({
type: 'GET',
url: 'DBConnect.php',
data: '',
dataType: 'json',
success: function(data) {
console.dir(data);
},
error:function (xhr, ajaxOptions, thrownError) {
dir(thrownError);
dir(xhr);
dir(ajaxOptions);
}
});
这是DBConnect.php的样子:
$username = "root";
$pass = "pass";
$host = "127.0.0.1";
$dbname = "test";
//queries
$table = "events";
$fetchAll = "SELECT * FROM $table";
try {
$DB = new PDO("mysql:host=$host;dbname=$dbname", $username, $pass);
//_WARNING uncommented when debugging
$DB->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
//$DB->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$query = $DB->query($fetchAll);
$query->setFetchMode(PDO::FETCH_OBJ);
while($row = $query->fetch()) {
echo json_encode($row);
}
} catch(PDOException $e) {
echo $e->getMessage();
}
$DB = null;
这样做我收到语法错误。我以为我可以作为一个json对象返回每一行,但显然这不起作用。我可以将所有行对象添加到一个数组并将其转换为json,但我想知道是否有更好的\更有效的方法来执行此操作。
答案 0 :(得分:1)
更改while循环:
$temp = array();
while($row = $query->fetch()) {
$temp[] = $row;
}
echo json_encode($temp);
试试这个,如果有帮助,请告诉我!