gpt4 book ai didi

php - mysql连接表并接收一行

转载 作者:行者123 更新时间:2023-11-30 22:16:12 24 4
gpt4 key购买 nike

The table 'category':

cat_id category
1 mobile
2 watch
.. ..

和“category_brand”表:

product_id   cat_id
1 1
2 1
3 2
.. ..

我有这个代码

public function actionEdit($id)
{
$sql="SELECT * FROM category_brand INNER JOIN category ON category_brand.cat_id=category.cat_id WHERE category_brand.product_id=$id";
$editcat=Yii::$app->db->createCommand($sql)->queryOne();
print_r($editcat->category);die;
}

我正在尝试重新定义 product_id 的类别。我在这里做错了什么? product_id 是 auto_increment 值。但我得到“试图获得非对象的属性(property)”

最佳答案

queryOne() 返回 array|false,而不是 ActiveRecord 对象

查看 print_r($editcat); 的结果

http://www.yiiframework.com/doc-2.0/yii-db-command.html#queryOne()-detail

如果你想要 AR 对象作为结果,使用它的 realtions

$editCategory = Category::find()
->joinWith(['categoryBrand']) // hasOne relation declared in Category model
->where([
category_brand.product_id=:id //category_brand is table name
])
->params([':id'=>$id])
->one();

或者试试 findBySql()

$editCategory = Category::findBySql("SELECT * FROM category INNER JOIN category_brand ON category_brand.cat_id=category.cat_id WHERE category_brand.product_id=:id",['id'=>$id])->一个();

关于php - mysql连接表并接收一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38195947/

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