【发布时间】:2020-08-25 12:40:19
【问题描述】:
查看我的查询
Select * from join_chat where
(user_1 = '24' and user_2 = '26') or
(user_1 = '26' and user_2 = '24')
请通过我的 api 提供解决此错误的建议
<h4>A PHP Error was encountered</h4>
<p>Severity: Warning</p>
</div>{"responce":true,"data":"20"}
2020-05-09 23:16:43.302 28439-30249/techline.carsapp W/System.err: org.json.JSONException: java.lang.String 类型的值选择无法转换为 JSONObject 2020-05-09 23:16:43.302 28439-30249/techline.carsapp W/System.err: 在 org.json.JSON.typeMismatch(JSON.java:112) 2020-05-09 23:16:43.302 28439-30249/techline.carsapp W/System.err:在 org.json.JSONObject.(JSONObject.java:163) 2020-05-09 23:16:43.302 28439-30249/techline.carsapp W/System.err:在 org.json.JSONObject.(JSONObject.java:176) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err: 在 util.CommonAsyTask.doInBackground(CommonAsyTask.java:104) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err: 在 util.CommonAsyTask.doInBackground(CommonAsyTask.java:23) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err: 在 android.os.AsyncTask$2.call(AsyncTask.java:333) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err: 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err:在 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err:在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err:在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 2020-05-09 23:16:43.303 28439-30249/techline.carsapp W/System.err: at java.lang.Thread.run(Thread.java:764)
消息:count():参数必须是数组或者实现了Countable的对象
文件名:controllers/Api.php
行号:801
<p>Backtrace:</p>
下面控制器中的方法
public function send_chat_data()
{
$this->load->library('form_validation');
$this->form_validation->set_rules('join_id', 'join_id', 'trim|required');
$this->form_validation->set_rules('sender_id', 'sender_id', 'trim|required');
$this->form_validation->set_rules('message', 'message', 'trim|required');
if ($this->form_validation->run() == false) {
$data["responce"] = false;
$data["error"] = 'join id is required';
} else {
$post_date=date("Y-m-d m:i:s");
$send_chat = array(
"join_id"=>$this->input->post("join_id"),
"sender_id"=>$this->input->post("sender_id"),
"message"=>$this->input->post("message"),
"created_date"=>$post_date
);
$this->db->insert("chat", $send_chat);
$insertid = $this->db->insert_id();
$q = $this->db->query("Select * from join_chat where join_id= '".$this->input->post("join_id")."' limit 1");
$recever_id = 0;
$row = $q->row();
if ($row->user_1 == $this->input->post("sender_id")) {
$recever_id = $row->user_2;
} else {
$recever_id = $row->user_1;
}
$q2 = $this->db->query("Select * from chat where chat_id= '".$insertid."' limit 1");
$chat = $q2->row();
$data["responce"] = true;
$data["data"] = $chat;
$q_fcm = $this->db->query("Select * from users where user_id= '".$recever_id."' limit 1");
$row_fcm = $q_fcm->row();
$registatoin_ids =$row_fcm->user_gcm_code;
$message["title"] = $this->config->item('app_name');
$message["message"] = $this->input->post("message");
$message["image"] = "";
$message["created_at"] = date("Y-m-d h:i:s");
$message["obj"] = $chat;
$this->load->helper('gcm_helper');
$gcm = new GCM();
//$result = $gcm->send_topics("/topics/rabbitapp",$message ,"ios");
$result = $gcm->send_notification(array($registatoin_ids), $message, "android");
}
echo json_encode($data);
}
错误来自下面的行
$row = $q->row();
【问题讨论】:
-
似乎您正在尝试将
String转换为JSONObject。您应该首先将字符串解析为 JSON 以获取 JSONObject。如果不查看您的代码/实现,很难判断。 -
需要查看你的控制器实现
-
我已更新问题以包含导致问题的控制器方法。请告诉我如何解决这个问题。谢谢
标签: java php mysql json codeigniter