我一直困扰于问题,并且自6个小时以来一直在寻找解决方案。
我正在使用PHP调用存储过程,以通过传递一堆用户ID来获取不同用户的任务。
我的用户ID以,
分隔。
$user_id_string = "59,49"; // The user IDs have been converted as string using implode function on an array.
$d = DB::select(DB::raw('call fetch_tasks("'.$user_id_string.'")'));
存储过程只有一个简单的查询,例如:
select firstname from users where id in (uids)
在这里,我已将uid声明为varchar(255)作为IN参数。
问题
调用该函数时,我得到firstname
的用户ID59。如果我对(SP)中的值进行硬编码,例如(59,49),我将获得两个用户的名字。
期望
两者均应返回firstname
。
请,请帮助我。
更新1:
Hard coded:
CREATE DEFINER=`root`@`localhost` PROCEDURE `fetch_tasks`(IN `cur_lat` VARCHAR(255), IN `cur_lng` VARCHAR(255), IN `uids` VARCHAR(255)) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SELECT id, firstname from users where id in (59,49)
By passing variable:
CREATE DEFINER=`root`@`localhost` PROCEDURE `fetch_tasks`(IN `cur_lat` VARCHAR(255), IN `cur_lng` VARCHAR(255), IN `uids` VARCHAR(255)) NOT DETERMINISTIC NO SQL SQL SECURITY DEFINER SELECT id, firstname from users where id in (uids)
答案 0 :(得分:-1)
您可以将ID存储在列表中,然后使用foreach来获取其名字,如下所示:
cell.myButton.addTarget(self, action: #selector(myButtonTapped), for: .touchUpInside)
@objc func myButtonTapped(_ sender: UIButton) {
let buttonPosition : CGPoint = sender.convert(sender.bounds.origin, to: self.collectionView)
}