php – MySQL:将参数传递给storedprocedure时出现单个qoute问题
发布时间:2020-12-13 16:22:43 所属栏目:PHP教程 来源:网络整理
导读:我正在从 PHP发送一个以逗号分隔的列表到我的存储过程.存储过程如下: UPDATE RolesMenus SET Enabled=1 WHERE MenuID IN(prmMenusList) AND RoleID = prmRoleID; 现在的问题是,当我通过代码传递菜单列表(prmMenusList)时,它只更新列表中第一个元素的值.我认
我正在从
PHP发送一个以逗号分隔的列表到我的存储过程.存储过程如下:
UPDATE RolesMenus SET Enabled=1 WHERE MenuID IN(prmMenusList) AND RoleID = prmRoleID; 现在的问题是,当我通过代码传递菜单列表(prmMenusList)时,它只更新列表中第一个元素的值.我认为,这是由于列表中的一些单引号.查询可能形成如下: UPDATE RolesMenus SET Enabled=0 WHERE MenuID IN('1,7,19,20,21,26') AND RoleID = 74; 我该如何避免这种情况? 这里我添加了CodeIgniter(PHP)代码: Public function enableMenus($selectedMenus,$roleID){ $menusList = ""; foreach($selectedMenus as $item){ $menusList .= $item.","; } $menusList = substr($menusList,strlen($menusList)-1); // to remove the leading comma $result=$this->db->query("call uspEnableMenus('".$menusList."',".$roleID.")"); $tempResult = $result; $result->next_result(); return $tempResult->result(); } 解决方法
我已经解决了这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |