自定义PHP的Mysql多参数绑定执行
来源:互联网 发布:linux mv覆盖目录非空 编辑:程序博客网 时间:2024/06/05 07:22
在PHP中使用Mysql的时候觉得sql中有参数需要绑定的时候觉得比较麻烦,于是自己上网看资料做成了一个多参数传入绑定的方法,暂时可以使用了,后面会继续针对这个机制进行修缮。这个查询的时候回绑定数据库里面的字段名,查询出来的时候会是键值对的形式,作为一个后台服务,查询数据做成JSON的时候是比较好用的。
/** * 执行SQL语句 * * @param 数据库连接 $dbLink * @param SQL语句 $sql * @param SQL语句绑定参数 $bindParams * array("参数类型","绑定参数"...) * @return 执行结果 */function _runSql ($dbLink, $sql, $bindParams = null){ // SQL语句预处理 if ($stmt = mysqli_prepare($dbLink, $sql)) { // 有限定参数 if ($bindParams) { $bindParamsMethod = new ReflectionMethod("mysqli_stmt", "bind_param"); $bindParamsReferences = array(); // 限定参数类型 $typeDefinitionString = array_shift($bindParams); foreach ($bindParams as $key => $value) { $bindParamsReferences[$key] = &$bindParams[$key]; } array_unshift($bindParamsReferences, $typeDefinitionString); $bindParamsMethod->invokeArgs($stmt, $bindParamsReferences); } if (mysqli_stmt_execute($stmt)) { $resultMetaData = mysqli_stmt_result_metadata($stmt); if ($resultMetaData) { $stmtRow = array(); $rowReferences = array(); while ($field = mysqli_fetch_field($resultMetaData)) { $rowReferences[] = &$stmtRow[$field->name]; } mysqli_free_result($resultMetaData); $bindResultMethod = new ReflectionMethod("mysqli_stmt", "bind_result"); $bindResultMethod->invokeArgs($stmt, $rowReferences); $result = array(); while (mysqli_stmt_fetch($stmt)) { foreach ($stmtRow as $key => $value) { $row[$key] = $value; } $result[] = $row; } mysqli_stmt_free_result($stmt); } else { $result = mysqli_stmt_affected_rows($stmt); } mysqli_stmt_close($stmt); } else { $result = FALSE; } } else { $result = FALSE; } return $result;}
0 0
- 自定义PHP的Mysql多参数绑定执行
- php中mysql参数绑定详解
- SpringMVC自定义参数绑定
- springmvc参数绑定-自定义参数绑定
- PLSQL_查询已执行SQL的绑定参数(案例)
- PHP+MySQL多语句执行
- crontab执行带参数的php脚本
- springmvc自定义参数类型绑定
- springmvc自定义参数绑定用户信息
- C#执行带参数的mysql语句
- 记录一次自定义参数绑定错误问题的解决过程
- 自定义参数绑定ConversionService和mvc:resources的命名冲突
- crontab执行带参数的php脚本,并取得参数
- 命令行执行带参数的php脚本,并取得参数
- PHP 获取header 的自定义参数值
- php-PDO-预处理绑定参数的一个细节
- SpringMVC参数绑定和自定义参数类型绑定
- springmvc自定义参数绑定实现日期参数绑定
- 矫正php的时间误差
- mysql高级部分(非常实用的_不要分)包含索引建立优化_函数_存储过程_触发器_及游标
- 智能指针
- 算法提高 第二大整数
- 13 MATLAB 三维图形绘制
- 自定义PHP的Mysql多参数绑定执行
- qt 数据库表不存在则创建
- linux关于网络的命令介绍
- Python中的条件判断
- Android内存泄漏的各种原因详解
- composer win7环境下的安装和使用
- 字符串连接
- 算法提高 约数个数
- 运维请注意:”非常危险“的Linux命令大