免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2011 | 回复: 1
打印 上一主题 下一主题

PHP操作Mysql存储过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-26 21:25 |只看该作者 |倒序浏览

PHP操作Mysql存储过程








      PS:原创文章,如需转载,请注明出处,谢谢!      

      本文地址:http://flyer0126.iteye.com/blog/1323188



      MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点主要是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,尤其是业务逻辑复杂的时候。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。





Php代码
  1. 1.<?php   
  2. 2./**
  3. 3. * PHP操作Mysql存储过程示例
  4. 4. *  
  5. 5. * @author flyer0126
  6. 6. * @date 2011-12-23
  7. 7. *  
  8. 8. */  
  9. 9.  
  10. 10.//配置数据库连接信息  
  11. 11.$hostname = 'localhost';  
  12. 12.$username = '******';  
  13. 13.$password = '******';  
  14. 14.  
  15. 15.//连接mysql数据库  
  16. 16.@$link = mysql_connect($hostname, $username, $password) or die("Connect Error:".mysql_error());  
  17. 17.  
  18. 18.//选择目标库  
  19. 19.mysql_select_db("flyer0126");  
  20. 20.  
  21. 21.//展示目标库中数据表  
  22. 22.@$res = mysql_list_tables("flyerdb");  
  23. 23.for ($i=0; $i<mysql_num_rows($res); $i++){  
  24. 24.    echo mysql_tablename($res, $i)."<br/>";  
  25. 25.}  
  26. 26.  
  27. 27.//创建存储结构  
  28. 28.mysql_query("DROP PROCEDURE IF EXISTS `my_test1`;", $link);  
  29. 29.$create_pro_sql = "CREATE PROCEDURE `my_test1`(a INT, b INT)  
  30. 30.                    BEGIN  
  31. 31.                        DECLARE c INT;  
  32. 32.                        IF a IS NULL THEN SET a = 0;  
  33. 33.                        END IF;  
  34. 34.                        IF b IS NULL THEN SET b = 0;  
  35. 35.                        END IF;  
  36. 36.                        SET c = a + b;  
  37. 37.                        SELECT c AS SUM;  
  38. 38.                    END;";  
  39. 39.  
  40. 40.mysql_query($create_pro_sql, $link) or die("Query Invalid:".mysql_error());  
  41. 41.  
  42. 42.//执行存储过程方式一  
  43. 43.//$run_pro_sql = "CALL my_test1(1,2);";  
  44. 44.  
  45. 45.//执行存储过程方式二  
  46. 46.mysql_query("SET @a = 1", $link);  
  47. 47.mysql_query("SET @b = 2", $link);  
  48. 48.$run_pro_sql = "CALL my_test1(@a, @b);";  
  49. 49.  
  50. 50.//执行存储过程  
  51. 51.$result = mysql_query($run_pro_sql, $link) or die("Query Invalid:".mysql_error());;  
  52. 52.  
  53. 53.//获取返回值  
  54. 54.$row = mysql_fetch_row($result);  
  55. 55.echo $row[0];  
  56. 56.//3  
  57. 57.  
  58. 58.//关闭连接  
  59. 59.mysql_close($link);  
  60. 60.  
  61. 61.?>  
复制代码

论坛徽章:
0
2 [报告]
发表于 2011-12-26 21:30 |只看该作者
谢谢楼主  学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP