php – MySQL:将参数传递给storedprocedure时出现单个qoute问题

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – MySQL:将参数传递给storedprocedure时出现单个qoute问题脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从 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();
                }

解决方法

我已经解决了这个问题.
本图文内容来网友网络收集整理提供,作为学习参考使用,版权属于原作者。

脚本宝典总结

以上是脚本宝典为你收集整理的php – MySQL:将参数传递给storedprocedure时出现单个qoute问题全部内容,希望文章能够帮你解决php – MySQL:将参数传递给storedprocedure时出现单个qoute问题所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。