PHP到JSON编码与关联数组

时间:2015-08-05 06:02:17

标签: php json associative-array

require "constant.php";
require "database.php";
$sql = "select e.*, b.booth_address, ba.bank_full_name from $app_booth_enrolment e
left join $app_booth_info b on e.booth_id=b.booth_id
left join $app_bank_info ba on e.bank_id=ba.bank_id";
$result = $conn->query($sql);
if($result->num_rows > 0){
    $data = array();
    while($row = $result->fetch_assoc()){
        array_push($data,$row);
    }
    echo $data = json_encode($data);  
    var_dump(json_encode($data));
}else{
    $data['status'] = "No terminal found";
    echo $data = json_encode($data);
}

echo json_encode($data);除了print_r($data)打印数组外什么都不打印。如何将数据数组转换为json格式。

Array
(
    [0] => Array
        (
            [id] => 1
            [enrolment_id] => 101-1-0001
            [terminal_type_id] => ATM
            [booth_name] => CITY-Bashundhara
            [enrolment_date] => 2015-01-01
            [live_date] => 2015-02-02
            [bank_id] => 101
            [booth_id] => 101-0001
            [terminal_serial] => 5300153835
            [terminal_host] => TCBL-TWO
            [terminal_app] => 
            [note] => 
            [status] => 1
            [insert_by] => 1
            [insert_date] => 
            [booth_address] => Head Office, Jiban Bima Tower, 10, Dilkusha Commercial Area, Dhaka-1000 
            [bank_full_name] => The City Bank Limited
        )

    [1] => Array
        (
            [id] => 2
            [enrolment_id] => 101-1-0002
            [terminal_type_id] => ATM
            [booth_name] => CITY-VIP_Road
            [enrolment_date] => 2015-01-01
            [live_date] => 2015-02-02
            [bank_id] => 101
            [booth_id] => 101-0002
            [terminal_serial] => 5300153831
            [terminal_host] => TCBL-TWO
            [terminal_app] => 
            [note] => 
            [status] => 1
            [insert_by] => 1
            [insert_date] => 
            [booth_address] => Head Office, Jiban Bima Tower, 10, Dilkusha Commercial Area, Dhaka-1000 
            [bank_full_name] => The City Bank Limited
        )

    [2] => Array
        (
            [id] => 3
            [enrolment_id] => 101-2-0003
            [terminal_type_id] => CDM
            [booth_name] => CITY-DSE
            [enrolment_date] => 2015-01-01
            [live_date] => 2015-02-02
            [bank_id] => 101
            [booth_id] => 101-0003
            [terminal_serial] => 5300153832
            [terminal_host] => TCBL-TWO
            [terminal_app] => 
            [note] => 
            [status] => 1
            [insert_by] => 1
            [insert_date] => 
            [booth_address] => Head Office, Jiban Bima Tower, 10, Dilkusha Commercial Area, Dhaka-1000 
            [bank_full_name] => The City Bank Limited
        ) 
)

1 个答案:

答案 0 :(得分:3)

我找到了解决方案。

Havelock建议打印json_last_error_msg(),我发现格式错误的UTF-8字符,可能编码错误。

我正在使用MySQLi所以我必须在数据库连接之后将此行放入字符格式:mysqli_set_charset($conn, "utf8");

谢谢哈夫洛克。