php - laravel 原始查询不返回结果

标签 php mysql laravel laravel-4 query-builder

我有下面的代码

$id = 1;
$idz = 3;
$nums = DB::select(DB::raw('select * from chat_user where user_id in (?, ?) and chat_id in (select chat_id from chat_user group by chat_id having count(*) > 1)'), array($id, $idz));
return $nums->count();

这里我有一个名为“user_chat”的表,我想知道如果我通过他们的“user_id”选择两行,他们是否有相同的“chat_id”。当我在 phpmyadmin 的 sql 部分测试它并返回结果时,代码工作正常。

select * from chat_user where user_id in (1, 3) and chat_id in (select chat_id from chat_user group by chat_id having count(*) > 1)

但是当我用 laravel 的风格写它时,我得到了这个错误:

Call to a member function count() on a non-object

任何帮助都会非常棒!

最佳答案

DB::select 返回一个数组,而不是一个对象。

改用count($nums)

关于php - laravel 原始查询不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872980/

相关文章:

javascript - 如何从未加载的 wordpress 帖子中检索 img src 值?

php - 带有变量数组的准备语句

php - 是什么阻止我添加具有外键值的行?

laravel - 如何在 Laravel 中连接 with 运算符的结果?

php - 将 MySQL 解析为 JSON 数组,并在 PHP 中进行数据操作

php - 如何通过sql查询排序?

php - DDD - 如何处理应用层中的获取或创建逻辑?

python - [Python]拆分csv文件的元素并插入mysql

php - artisan 命令说 : Dotenv values containing spaces must be surrounded by quotes

JAVA - POST 到 PHP,不接收变量