図に示すように:
次の文は何も出力されないのはなぜですか?
echo json_encode($result);#输出结果
class Result { var $state; var $data = array(); }
$start = 0; $end = 2; $uid = 1; $result = new Result(); $result_set = getClients($start, $end, $uid); $data = array(); $count = 0; while($row = mysql_fetch_array($result_set)) { $client = new Client(); $client->cid = $row['id']; $client->gender = $row['gender']; $client->rank = $row['rank']; $client->name = $row['name']; $client->phoneNum = $row['phoneNum']; $client->email = $row['email']; $client->address = $row['address']; $result->data[$count] = $client; echo $result->data[$count]->cid." "; echo $result->data[$count]->gender." "; echo $result->data[$count]->rank." "; echo $result->data[$count]->name." "; echo $result->data[$count]->phoneNum." "; echo $result->data[$count]->address."\n"; $count++; } if(count($data) > 0) { $result->state = 0; } else { $result->state = 1; } echo json_encode($result);#输出结果 class Result { var $state; var $data = array(); }
---------- debug php ----------Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\WWW\wsd\trunk\src\server\api\db\init_db.php on line 10Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\WWW\wsd\trunk\src\server\api\db\init_db.php on line 103 0 经理 张小莉 18825044888 广东省广州市天河区4 0 主管 吴美凤 18576430777 广东省深圳市南山区蛇口南海大道1079号PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\WWW\wsd\trunk\src\server\api\db\init_db.php on line 10PHP Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\WWW\wsd\trunk\src\server\api\db\init_db.php on line 10Output completed (0 sec consumed) - Normal Termination
{"state":1,"data":[ {"cid":3, "gender":0, "rank":"经理" "name":" 张小莉" "phoneNum":"18825044888 " "address":"广东省广州市天河区"}, {"cid":4, "gender":0, "rank":"主管" "name":" 吴美凤" "phoneNum":"18576430777 " "address":" 广东省深圳市南山区蛇口南海大道1079号"} ]}
print_r($result)
何が表示されますか?
$result はオブジェクトからのもので、出力は間違っています:
キャッチ可能な致命的なエラー: クラス Result のオブジェクトを D:WWWwsdtrunksrcserverapigetClients.php の 44 行目の文字列に変換できませんでした
クラス Result のオブジェクトをに変換できませんでしたstring オブジェクトは文字列に変換できません
この場合、もちろん json にすることはできません
クライアント クラスの定義を見てください
値がない可能性があります
エンコーディングの問題、json_encode() は utf- でのみ有効です8 データベーステーブルの作成時にテーブルのエンコーディングを utf-8 に設定します。次のように、データベースに接続するときにエンコーディングを設定します。
function connect_host() {
$host = "127.0.0.1"; "root";
$password_db = "wsd_db";
$con = mysql_connect($host, $name_db, $password_db) {
echo "ホストに接続します失敗しました"。 mysql_error();
return;
}
mysql_select_db($name_tb, $con);
mysql_query("SET NAMES UTF8");#utf-8 エンコーディングを設定
return $con;
}