アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP MySQLからデータを取得したいのですが、以下のエラーが出てしまい原因が分かりません。
詳しい方お願い致します。

<b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/home/users/2/***.**-********/web/****************/php/seupPharmacyData.php</b> on line <b>21</b><br />


エラーが出るコードは以下になります。
<?php
include "db.php";

$sql = "SELECT * FROM user_data";

$query = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql);

$result= array();

while ($row = mysql_fetch_object($query)) {
$result[] = array(
'name1' => $row->name1,
'name2' => $row->name2,
'name3' => $row->name3,
'id' => $row->id,
);
}

//jsonとして出力
header('Content-type:application/json; charset=UTF-8');
echo json_encode($result,JSON_UNESCAPED_UNICODE);
?>

A 回答 (2件)

なぜ「MySQLでエラーが出る」と思ったのかが謎です。

エラーメッセージの英語くらいは読んでください。このレベルの英語が(辞書を片手でも)読めないなら、プログラミングは出来ません。

おそらくphp5.2.xxで実行していませんか?

RTFM.
http://php.net/manual/ja/function.json-encode.php

json_encodeに第二引数(オプション)が追加されたのは、php5.3.0以降です。

というか、5.3系すらサポートが切れたというのに、5.2系というのは・・・。早急にバージョンアップをするか(サーバ側でサポートされないなら)サーバの変更を検討すべきです。


なお、ネイティブなMySQL関数は既に非推奨です。PDOで書き直してください。php5.3.6以降ならcharset指定もDSNで行えます。

http://php.net/manual/ja/mysqlinfo.api.choosing. …
http://php.net/manual/ja/ref.pdo-mysql.connectio …

PDOならwhilweでループを使わなくてもfetchAll()で一括取得できますしね。
    • good
    • 0
この回答へのお礼

PHPのバージョンが問題だったのですね。
また、非推奨関数のご指摘もありがとう御座います。
原因が分かってとてもスッキリしました。ありがとうございました!!

お礼日時:2015/01/25 20:31

><b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/


普通にエラーの内容書いているの何で読まないの?

この回答への補足

読んでも内容の意味が理解できないレベルですみません。具体的な解決方法がしりたいです。

補足日時:2015/01/25 16:27
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!