2010-05-05 25 views
31

Làm cách nào để chuyển đổi số PDOStatement thành json? Có thư viện ở đó để làm điều này không?PDOStatement to json

CHỈNH SỬA: Tôi cần phải giải mã số PDO::FETCH_OBJ. Xin lỗi, cảm ơn tất cả các câu trả lời.

json_encode không có khả năng jsonify PDO::FETCH_OBJ.

Cảm ơn.

+0

Bạn đang đề cập đến 'PDOStatement' nào? –

Trả lời

61

Bạn có thể sử dụng chức năng php inbuilt json_encode() http://php.net/manual/en/function.json-encode.php

Để mã hóa các kết quả sử dụng giống như

<?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

bạn đã chỉ json_encode một đối tượng PDOStatement? – Galen

+1

Có, tôi đã làm loại công việc nào, khi giải mã nó trả về một đối tượng stdClass. @mediaslave bạn có thể sử dụng json_encode trên PDO :: FETCH_OBJ, khi bạn chạy PDO :: FETCH_OBJ nó tạo đối tượng của stdClass, sau đó có thể được mã hóa thành các đối tượng json sau đó giải mã trở lại thành đối tượng stdClass. Làm một số var_dumps trên kết quả của bạn và xem :) – Rwky

+1

'PDO :: FETCH_ASSOC' thực sự quan trọng nếu không bạn sẽ có thông tin đôi – mpgn

8

Sử dụng phương pháp fetchAll() của PDOStatement để truy xuất mảng giá trị và sau đó chuyển giá trị đó đến json_encode().

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

Tôi cũng đã tìm thấy nó rất hữu ích để chèn và thiết lập tiêu đề PHP ('Content-Type: application/json') trước khi gửi lại đối tượng JSON được trả về bởi json_encode()

+0

Điều này không trả lời được câu hỏi, và cũng như thế nào, việc thiết lập tiêu đề đó sẽ giúp gì trước khi thực hiện giải mã? Nếu bạn có thể giải thích rằng nó có thể phù hợp trong một bình luận (thậm chí là chỉnh sửa) trong câu trả lời được chấp nhận. –

-1

Lỗi trường hợp xuất hiện trong ajax:

Thay vì sử dụng tiêu đề ('Loại nội dung ... trong tệp php của tôi, tôi đã sử dụng dataType:' JSON 'trong tệp javascript của mình.

Các vấn đề liên quan