gpt4 book ai didi

php - 成语 find_many() 只返回一个对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:46 26 4
gpt4 key购买 nike

我已经使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com