Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

json_encode not returning anything

Tags:

json

php

mysql

I am trying to convert my MYSQL table data into JSON. I am trying with json_encode(). But it does not work. It does not return anything. I have checked the console,doesn't even throw any errors. What am i missing?

<?php
    //open connection to mysql db
    $connection = mysqli_connect("localhost","root","","maps") or die("Error " . mysqli_error($connection));

    //fetch table rows from mysql db
    $sql = "select * from locations";
    $result = mysqli_query($connection, $sql) or die("Error in Selecting " . mysqli_error($connection));

    //create an array
    $emparray[] = array();
    while($row =mysqli_fetch_assoc($result))
    {
        $emparray[] = $row;
    }
    echo json_encode($emparray);

    //close the db connection
    mysqli_close($connection);
?>
like image 692
hhs Avatar asked Sep 19 '15 20:09

hhs


1 Answers

I know this is old, but I didn't found the explanation of this error, in my case, the problem was to keept the values on the DB with accent mark (Ej: cafetería). the var_dump($emparray ) certanly show information, but the echo json_ecode($emparray ) shows nothing. The solution?

This is my DB conection:

$connection = mysqli_connect('ip,'user','pass','dbname') or die("Error " . mysqli_error($connection));

Only need to add the correct charset:

mysqli_set_charset( $connection, 'utf8');

Expetcs this work for others.

like image 85
Kadaiser Avatar answered Sep 30 '22 06:09

Kadaiser