2010-05-05 5 views
31

PDOStatement을 json으로 변환하는 방법은 무엇입니까? 거기에 도서관이 있나요?json에 대한 설명

편집 : PDO::FETCH_OBJ을 jsonify해야합니다. 죄송합니다. 모든 답변을 주셔서 감사합니다.

json_encode에는 PDO::FETCH_OBJ을 jsonify 할 수 없습니다.

감사합니다.

+0

귀하는 어떤 'PDOStatement'를 언급하고 있습니까? –

답변

61

당신은 결과가 나는 또한 매우 유용 삽입하고 설정 발견

<?php 
$pdo = new PDO("mysql:dbname=database;host=127.0.0.1", "user", "password"); 
$statement = $pdo->prepare("SELECT * FROM table"); 
$statement->execute(); 
$results = $statement->fetchAll(PDO::FETCH_ASSOC); 
$json = json_encode($results); 
+9

json_encode에 PDOStatement 객체가 있습니까? – Galen

+1

예 어떤 종류의 작품을 디코딩하면 stdClass 객체를 반환합니다. @mediaslave PDO :: FETCH_OBJ에서 json_encode를 사용할 수 있습니다. PDO :: FETCH_OBJ를 실행하면 stdClass의 객체가 만들어지고 다음 json 객체로 인코딩되어 stdClass 객체로 다시 디코딩됩니다. 당신의 결과에 var_dumps를 수행하고보십시오 : – Rwky

+1

'PDO :: FETCH_ASSOC'은 정말로 중요합니다. 그렇지 않으면 이중 정보를 갖습니다. – mpgn

8

PDOStatement의 fetchAll() 메서드를 사용하여 값의 배열을 검색 한 다음 json_encode()으로 전달하십시오.

$resultJSON = json_encode($stmt->fetchAll(PDO::FETCH_ASSOC)); 
4
$array = $statement->fetchAll(PDO::FETCH_ASSOC); 
$json = json_encode($array); 
2

같은 것을 사용 인코딩하려면 붙박이 PHP 함수로 json_encode() http://php.net/manual/en/function.json-encode.php

을 사용할 수 있습니다 json_encode()가 반환 한 JSON 객체를 보내기 전에 PHP 헤더 ('Content-Type : application/json')

+0

이것은 질문에 대답하지 않으며 또한 해독을하기 전에 헤더를 설정하는 것이 어떻게 도움이됩니까? 당신이 받아 들여진 대답에 (심지어 편집 이상) 의견에 들어갈 수 있다고 설명 할 수 있다면. –

-1

아약스에 케이스 오류가 나타납니다 :

내 PHP 파일의 헤더 ('Content-Type ...'대신 자바 스크립트 파일에 dataType : 'JSON'을 사용했습니다.