作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经使用 idiorm 玩了几天了,并且逐渐设法让它真正开始执行查询。虽然我遇到了一些奇怪的事情,但我无法弄清楚。 find_many() 函数只返回一条记录,它始终是数据库中的最后一条记录。例如,我通过 mysqli 执行以下查询,并在我的数据库中获得了所有 16 个用户:
// connection is just a singleton instance to manage DB connections
$connection->getRawInstance()->getRawConnection()->query('select * from users'));
// The result of this is all 16 users
现在,当我在 idiorm 中执行等效查询时,我只得到 user16,这是数据库中的最后一个。
\ORM::configure('mysql:host=localhost;dbname=------');
\ORM::configure('username', '----');
\ORM::configure('password', '----');
\ORM::configure('logging', true);
$people = \ORM::forTable('users')->findMany();
谁知道这是为什么?
最佳答案
经过调查;您的表似乎缺少 id
列,或者您的 id
列不包含唯一值,或者您已将 Idiorm 配置为使用无效列而不是 编号
。
Idiorm 循环遍历返回的行并将它们分配给一个数组,使用 id
值作为索引/键。如果没有 id
值,则只返回最后一个结果。如果您有一个包含重复值的 id
列,那么您得到的结果会少于应有的结果,因为重复值会覆盖数组中以前的键。
您可以在 github bug 上看到更多信息,以及提议的更改。
关于php - 成语 find_many() 只返回一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863099/
我已经使用 idiorm 玩了几天了,并且逐渐设法让它真正开始执行查询。虽然我遇到了一些奇怪的事情,但我无法弄清楚。 find_many() 函数只返回一条记录,它始终是数据库中的最后一条记录。例如,
我是一名优秀的程序员,十分优秀!