0

以前使用していた Web サービスをコピーしようとしています。mySQL データベースからデータを取得し、json でエコーします。以前は何度も機能していましたが、現在は機能していないようです。

私のデータベースは次のように設定されています (スウェーデン語であることはわかっていますが、理解していただければ幸いです)。

#   Kolumn  Typ Kollationering  Attribut    Null    Förvalt
1   id  int(11)         Nej Inget   AUTO_INCREMENT     
2   desk    text    utf8_swedish_ci     Ja  NULL
3   info    varchar(4)  utf8_swedish_ci     Ja  NULL

次に、私のphpページは次のように設定されています:

$query = "SELECT * 
FROM  `$table`
LIMIT 100
";
$result = mysql_query($query,$conn) or die('Errant query:  '.$query);

$posts = array();
if(mysql_num_rows($result)) {
while($post = mysql_fetch_assoc($result)) {
  $posts[] = array('post'=>$post);
}
}

header('Content-type: application/json');
echo json_encode(array('posts'=>$posts));

私が得ている結果は奇妙です:

{"posts":[{"post":{"id":"1","desk":"blablabla","info":"4353"}},{"post":    {"id":"2","desk":**null**,"info":"3413"}}]}

データベースに実際に何かがあり、スウェーデン語の「åäö」文字に関連しているように見えるnullの結果が得られますが、これは以前は問題になりませんでした。実際に、同じことを試した別のデータベースからテーブルをエクスポートしようとしましたが、新しい値の入力を開始するまで機能しました。

何かご意見は?

編集: これは、現在データベース内の 2 つの値です。

desk    info
fragannanananana    4353
arhåaöafghsgjädsiahäkömgdsjnö   3413
4

1 に答える 1

1

私はそれを解決しました。mysql_query('SET CHARACTER SET utf8'); を追加するだけでした。そしてそれは魅力のように働きました!

于 2013-10-04T15:15:01.433 に答える