【发布时间】:2018-07-21 18:56:48
【问题描述】:
我有一个问题
$query = User::find();
$query->joinWith(['profile']);
$query->andWhere(['not', ['user.id' => $this->searching_user_id]]);
$query->andWhere(new Expression('profile.photo::jsonb ? \'id\''));
并得到错误
SQLSTATE[HY093]: 无效参数号:混合命名参数和位置参数\n 未能准备 SQL:SELECT COUNT(*) FROM \"user\" LEFT JOIN \"profile\" ON \"user\".\"id\" = \"profile\".\"user_id\" WHERE (\ "user\".\"status\"=:qp0) AND (NOT (\"user\".\"id\"=:qp1)) AND (profile.photo::jsonb ? 'id')
所以,如果我运行 SQL
SELECT "user".* FROM "user" LEFT JOIN "profile" ON "user"."id" = "profile"."user_id"
WHERE ("user"."status"='active')
AND (NOT ("user"."id"=1))
AND (profile.photo::jsonb ? 'id')
我做错了什么?
【问题讨论】:
-
您提供的
sql查询,如果通过mysql控制台或phpmyadmin运行,它是否获取正确的记录。 -
@MuhammadOmerAslam 如果你问 - 是的
标签: php postgresql pdo yii2