- 论坛徽章:
- 0
|
PHP操作Mysql存储过程
PS:原创文章,如需转载,请注明出处,谢谢!
本文地址:http://flyer0126.iteye.com/blog/1323188
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能。存储过程的优点主要是执行效率和SQL 代码封装。特别是 SQL 代码封装功能,尤其是业务逻辑复杂的时候。现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高。
Php代码- 1.<?php
- 2./**
- 3. * PHP操作Mysql存储过程示例
- 4. *
- 5. * @author flyer0126
- 6. * @date 2011-12-23
- 7. *
- 8. */
- 9.
- 10.//配置数据库连接信息
- 11.$hostname = 'localhost';
- 12.$username = '******';
- 13.$password = '******';
- 14.
- 15.//连接mysql数据库
- 16.@$link = mysql_connect($hostname, $username, $password) or die("Connect Error:".mysql_error());
- 17.
- 18.//选择目标库
- 19.mysql_select_db("flyer0126");
- 20.
- 21.//展示目标库中数据表
- 22.@$res = mysql_list_tables("flyerdb");
- 23.for ($i=0; $i<mysql_num_rows($res); $i++){
- 24. echo mysql_tablename($res, $i)."<br/>";
- 25.}
- 26.
- 27.//创建存储结构
- 28.mysql_query("DROP PROCEDURE IF EXISTS `my_test1`;", $link);
- 29.$create_pro_sql = "CREATE PROCEDURE `my_test1`(a INT, b INT)
- 30. BEGIN
- 31. DECLARE c INT;
- 32. IF a IS NULL THEN SET a = 0;
- 33. END IF;
- 34. IF b IS NULL THEN SET b = 0;
- 35. END IF;
- 36. SET c = a + b;
- 37. SELECT c AS SUM;
- 38. END;";
- 39.
- 40.mysql_query($create_pro_sql, $link) or die("Query Invalid:".mysql_error());
- 41.
- 42.//执行存储过程方式一
- 43.//$run_pro_sql = "CALL my_test1(1,2);";
- 44.
- 45.//执行存储过程方式二
- 46.mysql_query("SET @a = 1", $link);
- 47.mysql_query("SET @b = 2", $link);
- 48.$run_pro_sql = "CALL my_test1(@a, @b);";
- 49.
- 50.//执行存储过程
- 51.$result = mysql_query($run_pro_sql, $link) or die("Query Invalid:".mysql_error());;
- 52.
- 53.//获取返回值
- 54.$row = mysql_fetch_row($result);
- 55.echo $row[0];
- 56.//3
- 57.
- 58.//关闭连接
- 59.mysql_close($link);
- 60.
- 61.?>
复制代码 |
|