- 論壇徽章:
- 0
|
PHP操作Mysql存儲過程
PS:原創(chuàng)文章,如需轉(zhuǎn)載,請注明出處,謝謝!
本文地址:http://flyer0126.iteye.com/blog/1323188
MySQL 存儲過程是從 MySQL 5.0 開始增加的新功能。存儲過程的優(yōu)點(diǎn)主要是執(zhí)行效率和SQL 代碼封裝。特別是 SQL 代碼封裝功能,尤其是業(yè)務(wù)邏輯復(fù)雜的時候,F(xiàn)在有了 MySQL 存儲過程,業(yè)務(wù)邏輯可以封裝存儲過程中,這樣不僅容易維護(hù),而且執(zhí)行效率也高。
Php代碼- 1.<?php
- 2./**
- 3. * PHP操作Mysql存儲過程示例
- 4. *
- 5. * @author flyer0126
- 6. * @date 2011-12-23
- 7. *
- 8. */
- 9.
- 10.//配置數(shù)據(jù)庫連接信息
- 11.$hostname = 'localhost';
- 12.$username = '******';
- 13.$password = '******';
- 14.
- 15.//連接mysql數(shù)據(jù)庫
- 16.@$link = mysql_connect($hostname, $username, $password) or die("Connect Error:".mysql_error());
- 17.
- 18.//選擇目標(biāo)庫
- 19.mysql_select_db("flyer0126");
- 20.
- 21.//展示目標(biāo)庫中數(shù)據(jù)表
- 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.//創(chuàng)建存儲結(jié)構(gòu)
- 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.//執(zhí)行存儲過程方式一
- 43.//$run_pro_sql = "CALL my_test1(1,2);";
- 44.
- 45.//執(zhí)行存儲過程方式二
- 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.//執(zhí)行存儲過程
- 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.//關(guān)閉連接
- 59.mysql_close($link);
- 60.
- 61.?>
復(fù)制代碼 |
|