以下的文章主要是介绍MySQL5创建存储过程的实例演示,MySQL5创建存储在实际操作中应用的频率还是很高的,以下就是MySQL5创建存储过程的实例具体描述,希望在你今后的学习中会有所帮助。
1 用mysql客户端登入
2 选择数据库
mysql>use test
3 查询当前数据库有哪些存储过程
mysql>show procedure status where Db='test'
4 创建一个简单的存储过程
mysql>create procedure hi() select 'hello';
5 存储过程创建完毕,看怎么调用它
mysql>call hi();
显示结果 mysql> call hi();
+-------+
| hello |
+-------+
| hello |
+-------+
1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
6 一个简单的储存过程就成功了,这只是一个演示,存储过程可以一次执行多个sql语句,所以php只连接数据库一次就能查询多个语句;不过要返回多个结果集就必须用mysqli扩展来查询,否则会提示错误can't return a result set in the given context,所以要使用这些新功能,最好适应使用mysqli的php扩展库
函数的用法类似,就是多了一个返回值,以上的相关内容就是对MySQL5创建存储过程实例的介绍,望你能有所收获。
写存储过程方法很多:
下面我写的是比较传统的命令下操作:
进入mysql bin目录
输入:delimiter //
create procedure two()
begin
select * from lw_test order by id desc;
end
//
创建成功
查看全部存储过程是:
方法一:
select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE'
方法二:
show procedure status;
查看具体存储过程的内容是:
show create procedure proc_name;
show create function func_name;
删除存储过程是:
DROP PROCEDURE IF EXISTS proc_name
drop procedure proc_name
修改存储过程是
alter procedure proc_name
注意:不过修改存储过程只能修改名称和定义,不能修改具体内容所有,还是删除在创建。我也就没记他了。
调用:
define('CLIENT_MULTI_RESULTS', 131072);
$link = mysql_connect("127.0.0.1", "root", "root",1,CLIENT_MULTI_RESULTS) or die("Could not connect: ".mysql_error());
mysql_select_db("mysqlrock") or die("Could not select database");
$result = mysql_query("call two()") or die("Query failed:" .mysql_error());
//加参数MYSQL_ASSOC为关联数组,不加为数组数组。而print_r只能读取数字数组
$row = mysql_fetch_array($result, MYSQL_ASSOC);
// print_r($row);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$line = $row["id"].'qqqqqqqqq'.$row["name"];
echo $line.'<br/>';
}
mysql_free_result($result);
mysql_close($link);
注意:CLIENT_MULTI_RESULTS此参数只名是读取存储过程及语句,在MYSQL,官方翻译知道的的