12-09
12-09
12-09
MYSQL merge union merge sort_union 的不同
12-09
12-09
【MySQL】5.6/5.7并行复制bug导致的故障 ERROR 1755/1756
12-09
PHP Mysql support: 是mysql 还是mysqlnd?
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
12-09
MYSQL merge union merge sort_union 的不同
12-09
12-09
【MySQL】5.6/5.7并行复制bug导致的故障 ERROR 1755/1756
12-09
PHP Mysql support: 是mysql 还是mysqlnd?
12-09
12-09
12-09
12-09
12-09
12-09
一、MySQL存储过程MySQL的存储过程是一段预编译的SQL语句集合,可以用于执行一些特定的业务逻辑。相对于在应用层编写类似的业务逻辑,使用存储过程可以将这些逻辑移至数据库层
以下为本文的正文内容,请查阅,本站为公益性网站,复制本文以及下载DOC文档全部免费。
一、MySQL存储过程
MySQL的存储过程是一段预编译的SQL语句集合,可以用于执行一些特定的业务逻辑。相对于在应用层编写类似的业务逻辑,使用存储过程可以将这些逻辑移至数据库层面,节省了网络传输的时间,提高了性能。下面是一段简单的MySQL存储过程:
CREATEPROCEDURE`my_proc`(IN`p_id`INT,OUT`p_name`VARCHAR(20))BEGINSELECT`name`INTO`p_name`FROM`users`WHERE`id`=`p_id`;END
这段存储过程接受一个整型参数p_id
,并将对应用户的姓名赋值给p_name
输出参数。在应用层调用该存储过程时,只需要传递参数p_id
,即可获得对应用户的姓名。使用存储过程的好处在于,下次调用该存储过程时,MySQL引擎已经将该过程编译为机器码,无需再次解析SQL语句,因此执行效率更高。
二、PHP调用MySQL存储过程
在PHP开发中,使用存储过程可以大大减少数据库操作的时间。下面是调用上述MySQL存储过程的PHP代码:
<?php//连接MySQL数据库$db=newmysqli('localhost','user','password','test');if($db->connect_errno){die('ConnectError:'.$db->connect_error);}//准备存储过程的参数和调用语句$id=1;$p_name='';$sql="CALLmy_proc($id,@p_name)";//执行调用语句if($db->multi_query($sql)){//获取输出参数$db->next_result();$result=$db->query("SELECT@p_nameAS`name`");$row=$result->fetch_assoc();$p_name=$row['name'];//输出查询结果echo"User$id'snameis$p_name";}else{echo"CallProcedureError:".$db->error;}//关闭数据库连接$db->close();?>
在这段PHP代码中,首先连接MySQL数据库,随后准备存储过程的输入参数和调用语句。由于调用存储过程产生的查询结果是通过OUT参数输出的,因此需要执行多个SQL语句才能获取查询结果:首先执行调用语句,随后执行SELECT语句,最后获取输出参数p_name
。调用结束后,关闭数据库连接即可。
11-20
11-20
11-19
11-20
11-19
11-20
11-20
11-20
11-19
11-20
11-19
11-19
11-19
11-19
11-19
11-19