🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 存储过程 由于数据库操作接口的不统一,所以存储过程调用的方法上有一点差别。 > 后续会为YurunPHP引入PDO方式的数据库操作。 格式: ~~~ execProc([存储过程名][,[参数][,[参数类型]]]) ~~~ | 名称 | 描述 | | -- | -- | | 存储过程名 | 要执行的存储过程名 | | 参数 | 传递给存储过程的参数,一维数组形式 | | 参数类型 | 可选值查看下表,留空不填则会从配置文件中读取,如果传参和配置中都为空,则查询时不是使用预处理 | | 字符 | 描述 | | -- | -- | | i | 整数类型 | | d | 浮点类型 | | s | 字符串类型 | | b | 二进制类型 | ### MySQL API MYSQL API不支持INOUT和OUT参数。 代码: ~~~ // 调用无参数的存储过程 $this->db->execProc('存储过程名'); // 调用有参数的存储过程 $this->db->execProc('存储过程名',array('宇润','无锡')); ~~~ ### MySQLi MYSQLi支持INOUT和OUT参数。 用法: ~~~ $this->db->execProc([存储过程名][,参数]); ~~~ 代码: ~~~ // 调用无参数的存储过程 $this->db->execProc('存储过程名'); // 调用有参数的存储过程 $this->db->execProc('存储过程名',array('宇润','无锡')); // 调用有参数的存储过程,并且获得OUT参数返回值。存储过程的三个参数类型分别是字符串、字符串和整数型,所以根据上表是ssi $this->db->execProc('存储过程名',array('宇润','无锡',&$age),'ssi'); ~~~ ### 配置文件中配置存储过程的参数: ~~~ <?php return array( 'DbProc' => array( '存储过程名' => array( 'params' => 'ssi' ), '存储过程名2' => array( 'params' => 'iiii' ), ) ); ~~~ 直接执行: ~~~ // 调用有参数的存储过程,并且获得OUT参数返回值。 $this->db->execProc('存储过程名',array('宇润','无锡',&$age)); ~~~