【phalcon】手动增加绑定数组参数执行SQL语句

在Phalcon 3.4项目中,由于手动执行批量插入、删除和更新的需求,作者发现内置的PHQL并不理想,存在性能损耗且不支持数组参数绑定。受CI框架和Laravel框架启发,作者编写了一个扩展函数,允许Model直接执行带有数组参数的SQL语句,以防止SQL注入并简化操作。文章最后提到,作者计划分享一个基于Laravel源码的批量插入函数封装。
摘要由CSDN通过智能技术生成

因为公司项目开发使用的是phalcon3.4框架,经常需要手动批量插入,删除,或者更新一些数据。虽然,好像phalcon框架有phql,但是,好像没那么好用,例如,在执行update操作之前都会先查询一次。造成没必要的性能开支。而且,好像也不支持绑定数组参数。想起之前用的laravel框架,批量删除、更新、插入。简直容易得不是问题。所以,就抽空到网上查了些相关资料,参考了下CI的源码和一篇博文的一个写法(好像找不到原文了,不好意思,如果博主看到的话,联系我补充上参考链接)。写了个扩展函数,可以直接extends Model,对Model直接进行执行例如update、delete、insert 等SQL语句进行批量绑定参数及操作,防止SQL注入问题,也可避免手动拼接SQL语句之类的危险操作。直接附上以下源码:

/**
 * 可绑定参数执行原生SQL语句,扩展Phalcon框架,PDO绑定参数功能,可绑定数组参数。
 * @param $sqlSegment
 * @param $bindParams {需要绑定参数的数组,数组参数用:({param1})表示,单个参数用 :param2 表示,例如: "UPDATE table_name SET status = :status WHERE id IN ({Ids}) AND status != :deleted_status"}
 * @param $bindTypes {需要对应绑定参数类型的数组,类型:\PDO::PARAM_ ,如 整数型:\PDO::PARAM_INT }
 * @return array {返回SQL执行结果execute_result以及执行SQ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值