I have this MySQL table:
mysql> select * from members;
+-------+-----------+-----------+
| memid | firstname | lastname |
+-------+-----------+-----------+
| 1 | billal | begueradj |
| 2 | bill | gates |
| 3 | steve | jobs |
+-------+-----------+-----------+
3 rows in set (0.00 sec)
I have this code:
<?php
$output = array('error' => false);
$members = array();
try {
$db = new PDO('mysql:host=localhost;dbname=bill;charset=utf8',
'root',
''
);
} catch(Exception $e) {
die('Error in connecting to DB: <br/>'.$e->getMessage());
}
$response = $db->query('SELECT * FROM members');
while($row = $response->fetch()){
echo $row['firstname'].' ';
echo $row['lastname'].'<br/>';
array_push($members, $row);
}
$output['members'] = $members;
$response->closeCursor();
$json = json_encode($out);
echo $json; // outputs correctly
header("Content-type: application/json"); // error here
die();
?>
And I am getting this error message when I run the PHP file containing the PHP code above:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Why this happens?
P.S. Of course, when I comment this line: //header("Content-type: application/json");
the error message disappears
EDIT: New code version following the comments below:
<?php
header("Content-type: application/json");
$output = array('error' => false);
$members = array();
try {
$db = new PDO('mysql:host=localhost;dbname=bill;charset=utf8',
'root',
''
);
} catch(Exception $e) {
die('Error in connecting to DB: <br/>'.$e->getMessage());
}
$response = $db->query('SELECT * FROM members');
while($row = $response->fetch()){
array_push($members, $row);
}
$output['members'] = $members;
$response->closeCursor();
$json = json_encode($out);
//echo $json;
?>
Still getting the same error message