为了账号安全,请及时绑定邮箱和手机立即绑定

消息:count(): 参数必须是一个数组或一个在 centos 上实现 Countable

消息:count(): 参数必须是一个数组或一个在 centos 上实现 Countable

PHP
守着一只汪 2023-03-04 17:26:55
查看我的查询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"}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: 在 java 中。lang.Thread.run(线路.java:764)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。消息: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');
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

正如我所见,您问题中的问题是您正在尝试计算一个非数组或不可数的对象。

思绪

  1. 在您的整个代码中,您没有编写count()似乎导致问题的原因,为什么?

  2. $q->row();当您自己将结果限制为 1 时,为什么还需要计数// as you said the problem is here $row = $q->row();

可能的解决方案

当您使用row()ie时,$q->row();您会得到一个不可数的对象,

// row() dummy data

stdClass Object

(

    [id] => 15

    [event_id] => 3

    [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg

)

但是当你使用result()ie时$q->result();,它会产生一个对象数组,或者在 的情况下result_array(),一个数组数组,即使你将它们限制为一个。


// result() dummy data -- same as result_object()

(

    [0] => stdClass Object

        (

            [id] => 15

            [event_id] => 3

            [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg

        )


)


// result_array() dummy data

Array

(

    [0] => Array

        (

            [id] => 15

            [event_id] => 3

            [event_image] => c1fa8a5d5505047251fd928aa312b16c.jpg

        )


)

它们现在都是一个数组,因此是可数的。

所以,如果你必须计算,使用此外,如果你想计算“结果”的数量,你可以使用which will return 3 here。
$q->row();
count((array) ($q->row()));
{id}, {event_id}, {event_image}

希望对你有帮助。


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信