php调用mysql存储过程实例分析
本文实例分析了php调用mysql存储过程的方法。分享给大家供大家参考。具体分析如下: Mysql存储过程创建语法,代码如下: CREATE PROCEDURE和CREATE FUNCTION : 代码如下: [characteristic ...] routine_body
CREATE FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body proc_parameter: [ IN | OUT | INOUT ] param_name type func_parameter: param_name type type: Any valid MySQL data type characteristic: LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string' routine_body: Valid SQL procedure statement or statements 当我们看完以后,就可以开始写一些简单的存储过程了,首先建立存储过程,Create procedure(子程序)、Create function(函数),代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="67404" class="copybut" id="copybut67404" onclick="doCopy('code67404')"> 代码如下:<div class="codebody" id="code67404">Create procedure sp_Name ([proc_parameter ]) routine_body 这里的参数类型可以是 IN OUT INOUTT,意思和单词的意思是一样的,IN 表示是传进来的参数,OUT 是表示传出去的参数,INOUT 是表示传进来但最终传回的参数,代码如下: 代码如下: Returns type 指定了返回的类型,这里给定的类型与返回值的类型要是一样的,否则会报错,下面是一个简单的例子,代码如下: 代码如下: delimiter //
mysql> create procedure g
-> begin
-> select version() i
-> end
-> //
Query OK,0 rows affected
mysql> call getversion(@a mysql> select @a; 一个获取当前mysql版本的存储过程.那么php怎么与mysql的存储过程相结合呢.以下来自百度知道,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="66336" class="copybut" id="copybut66336" onclick="doCopy('code66336')"> 代码如下: Create table user( Id int unsigned not null auto_increment, Name varchar(20) not null, Pwd char(32) not null, Primary key(Id) ); 添加用户的存储过程,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="48583" class="copybut" id="copybut48583" onclick="doCopy('code48583')"> 代码如下:<div class="codebody" id="code48583">Delimiter // Create procedure insertuser(in username varchar(20),in userpwd varchar(32)) Begin Insert into welefen.user(Name,Pwd) values (username,md5(userpwd)); End // 验证用户的存储过程,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="75286" class="copybut" id="copybut75286" onclick="doCopy('code75286')"> 代码如下:<div class="codebody" id="code75286">Delimiter // Create procedure validateuser(in username varchar(20),out param1) Begin Select Pwd into param1 from welefen.user where Name=username; End // 修改密码的存储过程,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="95176" class="copybut" id="copybut95176" onclick="doCopy('code95176')"> 代码如下:<div class="codebody" id="code95176">Delimiter // Create procedure modifyPwd(in username varchar(20),in userpwd varchar(32)) Begin Update welefen.user set Pwd=md5(userpwd) where Name=username; End // 删除用户的存储过程,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="62064" class="copybut" id="copybut62064" onclick="doCopy('code62064')"> 代码如下:<div class="codebody" id="code62064">Delimiter // Create procedure deleteuser(in username varchar(20)) Begin delete from welefen.user where Name=username; End // 在客户端,我们给出如下的程序,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="61400" class="copybut" id="copybut61400" onclick="doCopy('code61400')"> 代码如下:<div class="codebody" id="code61400"><?php if (!mysql_connect("localhost","root","welefen")){ echo "连接数据库失败"; } if (!mysql_select_db("welefen")){ echo "选择数据库表失败 "; } $insert_user=array("welefen","welefen");//这里的welefen分别为用户名、密码 $validate_user=array("welefen","welefen");//这里的welefen分别为用户名、密码 $modify_Pwd=array("welefen","weilefeng"); //welefen为用户名weilefeng为新密码 $delete_user=array("welefen"); //welefen为用户名 希望本文所述对大家的php程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |