PHP调用MySQL的存储过程的实现代码

yipeiwu_com6年前Mysql基础
MySQL好像从5.0开始才引入存储过程,反正以前做应用的时候从没碰过,不过现在因为主要作内部系统,所以很多应用都用到了存储过程,当然前台有时候也需要调用MySQL存储过程,PHP的MySQL Lib好像支持的不是很好,不过我搜索了些资料,虽然不多,但是还是尝试的使用了,现在介绍一下方法,以便用到的朋友不用再头疼。
  lMySQL扩展也是支持存储过程的,不过只支持无返回结果的存储过程,如果该存储过程存在输出,这个调用就会抛出一个错误,具体错误忘记了。调用方式很简单:
$rs = mysql_query("call func('str')", $conn); 
  这个如果有返回结果,比如返回字符串,就会报错,我现在找到的解决方法是使用MySQLi扩展:
$rs = mysqli_query("call func('str')", $conn); 
  这样$rs就作为一个普通的MySQL Result来使用了,非常方便。
  在调用存储过程的时候,可能还会碰到一个问题,那就是可能会顺序调用多个存储过程,这样同样会报错,解决方法就是在调用一个存储过程并处理完成后,手动关闭MySQL链接,然后再次connect,再调用另一个存储过程再处理,需要调用多少个存储过程,就重新连接多少次。
  因为我不是很了解MySQL扩展,以上纯属经验总结,如果有哪位高手知道来龙去脉,欢迎指点。

相关文章

DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法

只是中文出现乱码时,在链接数据库后面,加上这一句 utf8的话 mysql_query("SET NAMES 'utf8'"); gbk的话 mysql_query("SET NAMES...

优化使用mysql存储session的php代码

之前写过两篇文章《自定义SESSION(二)——数据库保存》和《我为什么不使用session》   但后来发现都有问题。前者处理在实际中几乎没什么用处,而且sessi...

PHP 使用MySQL管理Session的回调函数详解

复制代码 代码如下:<?php class MySession extends DBSQL {  /**   * __constr...

php实现MySQL数据库备份与还原类实例

本文实例讲述了php实现MySQL数据库备份与还原类。分享给大家供大家参考。具体分析如下: 这是一个非常简单的利用php来备份mysql数据库的类文件,我们只要简单的在dbmange中配...

phpStudy中升级MySQL版本到5.7.17的方法步骤

前言 今天在工作发现一个错误,在往本地导数据表的时候老是报错: [Err] 1294 - Invalid ON UPDATE clause for '字段名' column 报错的...