JSON_ENCODE がデータベース フィールドに NULL を返す
MySQL および PHP を使用しているときに、json_encode() がフィールドに NULL を返す問題が発生する場合があります。あなたのデータベースに。具体的な例を次に示します:$result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error()); $rows = array(); while($row = mysql_fetch_assoc($result)){ $rows[] = $row; } echo json_encode($rows);
考えられる原因:
データベース スキーマとエコーされた出力を調査した結果、非形式でデータを取得している可能性があります。 -UTF8解決策:
この問題を解決するには、SELECT クエリの前に次の行を追加します。mysql_query('SET CHARACTER SET utf8');
更新されたコード:
mysql_query('SET CHARACTER SET utf8'); $result = mysql_query('SELECT * FROM `staff` ORDER BY `id` DESC LIMIT 2') or die(mysql_error()); $rows = array(); while($row = mysql_fetch_assoc($result)){ $rows[] = $row; } echo json_encode($rows);
期待される出力:
ここで、更新されたコードを実行すると、次の出力が得られます。「説明」フィールドには NULL 以外の値が含まれています。値:以上が`json_encode()` が MySQL データベース フィールドに対して NULL を返すのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。