MySQL 5.0 以上支持存储过程。
    PHP 5.0 以上的 mysqli 系列函数可以支持操作 MySQL 的存储过程。
    以下是一些简单的存储过程和用 PHP 调用的示例。

一、返回单个数据:

  1. 1:  <?php 2:    header(”Content-Type:text/html;charset=utf-8″); 3:    4:    $host = “localhost”; 5:    $user = “root”; 6:    $password = “mypassword”; 7:    $db = “test_store_proc”; 8:    $dblink = mysqli_connect($host, $user, $password, $db) or die(”can’t connect to mysql”); 9:   10:    $dblink->query(’SET NAMES UTF8′);11:    if ($result = $dblink->query(”CALL sp_test0(@num, @x, 123)”))12:    {13:      $rs = $dblink->query(”select @num”);14:      $row = $rs->fetch_array();15:      echo $row[’@num’], ‘<br>’;16:   17:      $rs = $dblink->query(”select @x”);18:      $row = $rs->fetch_array();19:      echo $row[’@x’];20:   21:      mysqli_free_result($rs);22:    }23:    else24:      echo ‘error…’;25:    mysqli_close($dblink);26:   27:  /*28:  – Procedure “sp_test0″ DDL29:  CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test0`(OUT num INT, OUT x VARCHAR(16), IN n INT)30:  BEGIN31:    DECLARE nouse int;32:    DECLARE tmp int;33:   34:    SELECT nId INTO nouse FROM open_news WHERE nID=39;35:    SELECT count(*) INTO tmp FROM open_news;36:    SET num = tmp;37:   38:    SET x = ‘XXX’;39:  END;40:  */41:  ?>42:

二、返回结果集:

  1. :  <?php 2:    header(”Content-Type:text/html;charset=utf-8″); 3:    4:    $host = “localhost”; 5:    $user = “root”; 6:    $password = “mypassword”; 7:    $db = “test_store_proc”; 8:    $dblink = mysqli_connect($host, $user, $password, $db) or die(”can’t connect to mysql”); 9:   10:    $dblink->query(’SET NAMES UTF8′);11:    if ($result = $dblink->query(”call sp_test1()”))12:    {13:      while( $row = $result->fetch_array())14:      {15:        echo ($row[’nId’]. “–” . $row[’sTopic2′] . “<br>”);16:      }17:      mysqli_free_result($result);18:    }19:    else20:      echo ‘error…’;21:    mysqli_close($dblink);22:   23:  /*24:  – Procedure “sp_test1″ DDL25:  CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test1`()26:  BEGIN27:     SELECT * FROM open_news WHERE nId<40;28:  END;29:  */30:  ?>

三、返回多个结果集:

  1. :  <?php 2:    header(”Content-Type:text/html;charset=utf-8″); 3:    4:    $host = “localhost”; 5:    $user = “root”; 6:    $password = “mypassword”; 7:    $db = “test_store_proc”; 8:    9:    $dblink = new mysqli($host, $user, $password, $db);10:    if (mysqli_connect_errno())11:    {12:      print(’Can not connect to MySQL server’);13:      exit;14:    }15:    else16:      print(’?????? MySQL ????????<br>’);17:   18:    $dblink->query(’SET NAMES UTF8′);19:    $rows = array();20:    if($dblink->real_query(”CALL sp_test2()”))21:    {22:      do23:      {24:        if($result = $dblink->store_result())25:        {26:          while ($row = $result->fetch_assoc())27:          {28:            array_push($rows, $row);29:          }30:          $result->close();31:        }32:      }33:      while($dblink->next_result());34:    }35:    else36:      echo ‘error…’;37:   38:    $dblink->close();39:   40:    print_r($rows);41:  /*42:  – Procedure “sp_test2″ DDL43:  CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_test2`()44:  BEGIN45:    SELECT nId,sTopic2 FROM open_news LIMIT 0, 5;46:    SELECT count(nId) AS counter FROM open_news;47:  END;48:  */49:  ?>

本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286529,如需转载请自行联系原作者

用 PHP 调用 MySQL 存储过程相关推荐

  1. hibernate mysql 存储过程_hibernate调用mysql存储过程

    hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...

  2. vb获得mysql的值,VB.NET调用MySQL存储过程并获得返回值的方法

    本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法.分享给大家供大家参考.具体实现方法如下: Dim myConnectionString As String = "Data ...

  3. jsp实现mysql存储过程_JSP调用MySQL存储过程收藏

    JSP调用MySQL存储过程收藏 1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {c ...

  4. mysql存储过程 php_PHP调用MYSQL存储过程实例

    说一下 在PHP页面中调用MYSQL存储过程的方法 以下是几个例子 仅供参考 实例一:无参的存储过程 $conn = mysql_connect('localhost','root','root') ...

  5. go mysql存储过程_Golang 调用MySQL存储过程

    Golang 调用MySQL存储过程 最近写项目发现,很多逻辑业务的实现,写到数据库的存储过程中,然后调用,真的非常方便.后端代码量大大减少,最重要的是性能高,速度快! 引用说明:项目使用数据库ORM ...

  6. c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...

    C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...

  7. mysql inputoutput_PHP:同时使用INPUT和OUTPUT参数(不“ INOUT”)调用MySQL存储过程

    从PHP,我想在MySQL中调用存储过程.该过程采用输入 和 输出参数- 而不是 " INOUT" 参数. 对于一个简单的示例,说我在MySQL中具有以下存储过程: DELIMIT ...

  8. jdbc mysql 存储过程查询数据_jdbc调用mysql存储过程实现代码

    1. 创建存储过程 建立一个MySQL的存储过程 add_pro 复制代码 代码如下: delimiter // drop procedure add_pro // create procedure ...

  9. Golang 调用MySQL存储过程

    原创:转载请标明出处: https://blog.csdn.net/ming2316780/article/details/86499344 本文出自:[iGoogle.ink的博客] Golang ...

  10. SpringBoot Mybatis注解调用Mysql存储过程并接收多个OUT结果集(多个mode=IN和mode=OUT参数)

    其他同学提供的方式大部分都是Map接收调用mysql存储过程返回OUT结果集,要么游标,要么单个OUT,然后再次加工成想要的对象.涉及到直接用注解实现自动转换OUT参数结果集为对象时,都是忽略带过. ...

最新文章

  1. 《数据科学家养成手册》第十章--混沌论
  2. 软件开发管理的十大工作任务(FROM 栾跃)
  3. 推荐系统笔记(内容推荐)
  4. docker Harbor
  5. CkEditor批量上传图片(java)
  6. C#之获取网页标题...
  7. Markdown 编辑器才是yyds|CSDN编辑器测评
  8. 基于android平台的24点游戏设计与实现需求分析,基于Android平台的24点游戏设计与实现需求分析_毕业设计论文.doc...
  9. python补集运算_Python 的集合(set)运算
  10. 配置webpack.config.js遇到的一些问题
  11. (DevExpress2011控件教程)ASPxGridView 范例3 :ASPxGridView 排序和分组、过滤行、统计功能等功能实现...
  12. 【POJ 2482】【扫描线问题】Stars in Your Window【包星星问题】
  13. java极光推送demo_Java集成极光推送
  14. 《活法》 -豆瓣评分8.4
  15. JSON.stringify(value[, replacer[, space]])中三个参数详解
  16. treeset可以重复吗_买了好几份意外险,可以重复理赔吗?
  17. C++和java的区别和联系
  18. 初尝vue-element-admin
  19. 啊哈添柴挑战Java1826. 顺序输出(简单)
  20. STM32F103C8T6封装引脚图

热门文章

  1. 缓存用不好,Bug改到老
  2. 从面试角度分析CopyOnWriteArrayList源码
  3. 使用IntelliJ IDEA查看类图,内容极度舒适
  4. 面试官:你分析过mybatis工作原理吗?
  5. 工作发狂:Mybatis 中$和#千万不要乱用!
  6. 【廖雪峰python入门笔记】list删除元素_pop()
  7. 提速20倍!谷歌AI发布TensorFlow 3D
  8. 改进张益唐证明,陶哲轩「他的证明比我还强」,这个天才青年还解决了困扰数学界近80年的「简单问题」...
  9. 如何逐步打下(研究生/博士生阶段)深度学习的数学基础?
  10. 工欲善其事,必先利其器。如何玩转 VS Code?