gpt4 book ai didi

php - 在 codeigniter 中连接 3 个表

转载 作者:行者123 更新时间:2023-11-29 13:21:52 24 4
gpt4 key购买 nike

我已经解决了许多关于在 Codeigniter 中连接 3 个表的问题。但是,我陷入了这些包括返回产品数组的代码行中。

function products_sorter($region) {
$this -> db -> select('*');
$this -> db -> from('wiyo_products');
$this -> db -> join('wiyo_products_distribution', 'wiyo_products.id = wiyo_products_distribution.product_id');
$this -> db -> join('wiyo_regions', 'wiyo_regions.id = wiyo_products_distribution.region_id');
$query = $this -> db -> get(array('wiyo_regions.slug' => $region));

if ($query -> num_rows() > 0) {
return $query;

}

}

但是我收到了如下错误

A Database Error Occurred
Error Number: 1103

Incorrect table name ') JOIN '

SELECT * FROM (`wiyo_products`, `) JOIN `wiyo_products_distribution` ON `wiyo_products`.`id` = `wiyo_products_distribution`.`product_id` JOIN `wiyo_regions` ON `wiyo_regions`.`id` = `wiyo_products_distribution`.`region_id`

这是什么类型的错误?怎么解决这个问题?

最佳答案

由于 Active Record get 函数使用不当,该函数使用表名作为第一个参数,因此出现错误。

http://ellislab.com/codeigniter/user-guide/database/active_record.html

由于您似乎将数组传递到 get 函数中,我猜您想要使用 get_where 函数?

尝试以下操作 - 删除当前查询中的 from 行,并将表名称作为 get_where 函数中的 first 参数,将当前的数组作为第二个参数传入:

function products_sorter($region) {
$this -> db -> select('*');
$this -> db -> join('wiyo_products_distribution', 'wiyo_products.id = wiyo_products_distribution.product_id');
$this -> db -> join('wiyo_regions', 'wiyo_regions.id = wiyo_products_distribution.region_id');
$query = $this -> db -> get_where('wiyo_products' array('wiyo_regions.slug' => $region));
if ($query -> num_rows() > 0) {
return $query;

}
}

希望有帮助!

关于php - 在 codeigniter 中连接 3 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20706639/

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