Bonjour ,
je fais quelques teste pour un module de news , j'aimerais passer les infos récupérés dans ma base de donnée sous le format json .
J'ai mis ça sous forme d'un tableau etc... mais quand j'utilise json_encode() ça me returne false
J'ai trouvé un petit debug pour avoir plus de détail et ça me retourne :
JSON_ERROR_UTF8
Voici ma base de donnée ( ce sont des entrées tests ça vient de nulle part ) : http://gyazo.com/ef1af687f898f64413ae91c658b8ddfb
et mon code php :
<?php
$db = new PDO('mysql:host=localhost;dbname=tuto-divers','root','root');
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
?>
<html>
<head>
<title>Test</title>
<meta charset='UTF-8' >
</head>
<body>
<?php
$results = $db->query(" SELECT * FROM news_module ");
$news = array();
foreach ($results as $result){
$news$result'id']] = array(
'category' => $result'category'],
'name' => $result'name'],
);
}
var_dump(json_encode($news));
switch (json_last_error()) {
case JSON_ERROR_NONE:
echo ' - Aucune erreur';
break;
case JSON_ERROR_DEPTH:
echo ' - Profondeur maximale atteinte';
break;
case JSON_ERROR_STATE_MISMATCH:
echo ' - Inadéquation des modes ou underflow';
break;
case JSON_ERROR_CTRL_CHAR:
echo ' - Erreur lors du contrôle des caractères';
break;
case JSON_ERROR_SYNTAX:
echo ' - Erreur de syntaxe ; JSON malformé';
break;
case JSON_ERROR_UTF8:
echo ' - Caractères UTF-8 malformés, probablement une erreur d\'encodage';
break;
default:
echo ' - Erreur inconnue';
break;}
?>
?>
</body>
</html>
Merci d'avance
Bonsoir,
$db = new PDO('mysql:host=localhost;dbname=tuto-divers','root','root', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
Cordialement.