1
我原本有一个SQL语句,这样的:分配相同的参数值在PDO多次执行
SELECT *, COUNT(friend_one) AS pending_count , COUNT(friend_two) AS requests_sent
FROM friends
WHERE friend_one OR friend_two = ?
AND status = ?
在我指定我的参数,如:
$pending_friend_count_stmt->execute(array($user_id, $status_one));
但是,查询不得到我想要的结果。有人向我展示了一种不同的方式,但它多次使用变量$user_id
,所以我不知道如何调整代码以使用参数。
这里你可以看到新的查询:在你的问题然而
我是否能够只是做
SELECT COUNT(CASE WHEN `friend_one` = ? THEN 1 END) as `requests_count`,
COUNT(CASE WHEN `friend_two` = ? THEN 1 END) as `pending_count`
FROM `friends`
WHERE ? IN (`friend_one` , `friend_two`)
AND `status` = ?
$pending_friend_count_stmt->execute(array($user_id, $user_id, $user_id $status_one));
使用命名参数':userid'而不是''喂奶时'[ '用户id'=> $ USER_ID]'执行。 – Xorifelse
@Xorifelse我可以把它们放在执行中吗? execute(array(':userid',$ user_id,$ status_one)); – Paul
更新了评论,但请记住,你不能混用它们,所以都必须命名。 – Xorifelse