php调用mysql存储过程实例分析,php存储过程调用实例代码

//连接mssql数据库教程服务器

代码如下:

复制代码 代码如下:

本文实例剖判了php调用mysql存款和储蓄进程的艺术。分享给大家供大家参照他事他说加以考察。具体剖析如下:

 代码如下

 代码如下

//譬如要调用的储存进程为gxtj(a,b)
$db=new mysqli(“localhost”,”ssss”,”aaaaa”,”bbbb”);
mysqli_query($db,”SET NAMES utf8″);
$result=$db->query(“call gxtj($year,$jd)”); //
gxtj是mysql的仓库储存进程名称 [color=gray][/color]
while( $row = $result->fetch_array(MYSQLI_ASSOC))
//完结从再次来到结果集中抽出一行
{
while ($key=key($row)){ //依次获得字段名
$value=current($row); //依次获得字段值
}
}

Mysql存款和储蓄进度成立语法,代码如下:

 $link = mssql_connect(“127.0.0.1”, “sa”, “sa”) or die(“Can’t connect
sql server”);
    mssql_select_db(“frrc”, $link) or die(“Select database failure”);

//比方要调用的仓库储存进程为gxtj(a,b) 
$db=new mysqli(“localhost”,”ssss”,”aaaaa”,”bbbb”); 
mysqli_query($db,”SET NAMES utf8″); 
$result=$db->query(“call gxtj($year,$jd)”); //
gxtj是mysql的贮存进程名称 [color=gray][/color] 
while( $row = $result->fetch_array(MYSQLI_ASSOC))
//完成从再次回到结果集中抽出一行 

while ($key=key($row)){ //依次取得字段名 
$value=current($row); //依次获得字段值 

实例一:无参的存款和储蓄进度

CREATE PROCEDURE和CREATE FUNCTION :

//初步化并加载存款和储蓄进程 Bigdatabase

实例一:无参的储存进程

复制代码 代码如下:

复制代码 代码如下:

 代码如下

 代码如下

$conn = mysql_connect(‘localhost’,’root’,’root’) or die
(“数据连接错误!!!”);
mysql_select_db(‘test’,$conn);
$sql = “
create procedure myproce()
begin
php调用mysql存储过程实例分析,php存储过程调用实例代码。INSERT INTO user (id, username, sex) VALUES (NULL, ‘s’, ‘0’);
end;
“;
mysql_query($sql);//创设一个myproce的寄存进程

CREATE PROCEDURE sp_name ([proc_parameter[,…]])
 
    [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

     $stmt = mssql_init(“Bigdatabase”, $link) or die(“initialize stored
procedure failure”);  
  mssql_bind($stmt, “@pagesize”, $pagesize, SQLINT4);
  mssql_bind($stmt, “@start”, $start, SQLINT4);
  @$ms_result = mssql_execute($stmt, false);
  mssql_query(“DUMP TRANSACTION tempdb WITH NO_LOG”);
  
  do{
   while( $ms_rs = mssql_fetch_object($ms_result) )
   {
    //进行数据管理
   }
  }

$conn = mysql_connect(‘localhost’,’root’,’root’) or die
(“数据连接错误!!!”);
mysql_select_db(‘test’,$conn);
$sql = “
create procedure myproce()
begin
INSERT INTO user (id, username, sex) VALUES (NULL, ‘s’, Ɔ’);
end; 
“;
mysql_query($sql);//创设八个myproce的囤积进度

$sql = “call test.myproce();”;
mysql_query($sql);//调用myproce的蕴藏进度,则数据库中将扩大一条新记录。

当大家看完现在,就足以起来写一些简约的存款和储蓄进度了,首先建设构造存款和储蓄进程, Create
procedure(子程序)、Create function(函数),代码如下:

// msssql  存款和储蓄进度 Bigdatabase如下

$sql = “call test.myproce();”;
mysql_query($sql);//调用myproce的存款和储蓄进程,则数据库中校扩大一条新记录。

实例二:传入参数的囤积进程

复制代码 代码如下:

 代码如下

 

复制代码 代码如下:

Create procedure sp_Name ([proc_parameter ])
routine_body

/*
CREATE PROCEDURE Bigdatabase
@pagesize int,
@start int  
AS
declare @bsql nvarchar(4000)
set @bsql = ‘select top ‘ + str(@pagesize) + ‘
username,jobid,password,useremail,zcdata,ip,name,xingbie,minzu,xueli,hunyin,age,xuexiao,zyclass,zhuanye,x_suozaidi,x_suozaidi1,huji,huji1,shengao,byear,birthyear,birthmonth,birthday,dianhua,qq,gerenzhuye,selectedjob1,selectedjob2,selectedjob3,s_PWL1,s_PWL2,s_PWL3,daiyuyaoqiu,Negotiable,provideHouseNeeded,availOpts,availNotice,llcs,CONVERT(varchar(100),dlsj,
25) as
dlsj,xgsj,dlcs,jsjshuiping,language_one,l_OneAbility,language_two,l_twoAbility,mandarinLevel,skillkey,jingyan,photopb,photo,phototre,mbsys,codetype,code,shouji,posts,address,jobtype,convert(varchar(8000),pingjia)
as pingjia ,convert(varchar(8000),jinengzhuanchang) as jinengzhuanchang
,convert(varchar(8000),fazhanfangxiang) as
fazhanfangxiang,convert(varchar(8000),other) as other from person where
id not in(select top ‘ + str(@start) + ‘ id from person   order by id
asc)   order by id asc ‘
execute sp_executesql @bsql
GO

实例二:传入参数的仓库储存进度

$sql = “
create procedure myproce2(in score int)
begin
if score >= 60 then
select ‘pass’;
else
select ‘no’;
end if;
end;
“;
mysql_query($sql);//创造三个myproce2的积攒进度
$sql = “call test.myproce2(70);”;
mysql_query($sql);//调用myproce2的仓库储存进程,看不到效果,能够在cmd下阅览结果。

此处的参数类型能够是 IN OUT INOUTT,意思和单词的意思是一致的,IN
表示是传进来的参数,OUT 是象征传出去的参数,INOUT
是象征传进来但最后传回的参数,代码如下:

注:必得把text转变到varchar来处理,不然会出标题

 代码如下

实例三:传出参数的储存进度

复制代码 代码如下:

相关文章