php+mysql如何使用存储过程


一、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。调用结束后,关闭数据库连接即可。


上一篇:PHP中如何连接MySQL数据库

下一篇:MySQL查询怎么主键


mysql php
Copyright © 2002-2019 飞翔范文网 fhm8.cn 皖ICP备2020016292号-5
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993
热门搜索 网站地图