首页 > 数据库 > MySQL > 正文

php调用mysql5存储过程方法

2024-07-24 12:39:07
字体:
来源:转载
供稿:网友

本文章介绍了关于在php中调用mysql5的存储过程,为什么只讲mysql5呢,原因很简单因为只有mysql5.0及以后的版本才支持存储过程,下面我们从入门及开始看.

1,调用存储过程的方法.

a,如果存储过程有 IN/INOUT参数,声明一个变量,输入参数给存储过程,该变量是一对,一个php变量,也可以不必,只是没有php变量时,没有办法进行动态输入,一个Mysql变量.

b,如果存储过程有OUT变量,声明一个Mysql变量.mysql变量的声明比较特殊,必须让mysql服务器知道此变量的存在,其实也就是执行一条mysql语句.

set @mysqlvar=$phpvar;

c,使用mysql_query()/mysql_db_query()执行mysql 变量声明语句,代码如下:

mysql_query("set @mysqlvar[=$pbpvar]");

这样,在mysql服务器里面就有一个变量,@mysqlar,如果时IN参数,那么其值可以有phpar传入.

d,如果时存储过程.

1,执行 call procedure()语句.

也就是mysql_query("call proceduer([var1]...)");

2.如果有返回值,执行select @ar,返回执行结果,代码如下:

mysql_query("select @var)"

接下来的操作就和php执行一般的mysql语句一样了,可以通过mydql_fetch_row()等函数获得结果,如果是函数,直接执行 select function()就可以了,代码如下:

  1. $host="localhost"
  2. $user="root"
  3. $password="11212"
  4. $db="samp_db"
  5. $dblink=mysql_connect($host,$user,$password
  6. or die("can't connect to mysql"); 
  7. mysql_select_db($db,$dblink
  8. or die("can't select samp_db"); 
  9. $res=mysql_query("set @a=$password",$dblink); 
  10. $res=mysql_query("call aa(@a)",$dblink); 
  11. $res=mysql_query("select @a",$dblink); 
  12. $row=mysql_fetch_row($res); 
  13. echo $row[0];  

从网上找的一个实例,代码如下:

  1. <?php  
  2. /* Connect to a MySQL server */  
  3. $link = mysqli_connect(  
  4. 'localhost'/* The host to connect to */  
  5. 'root'/* The user to connect as */  
  6. 'root'/* The password to use */  
  7. 'db_name'); /* The default database to query */  
  8. if (!$link) {  
  9. printf("Can't connect to MySQL Server. Errorcode: %sn", mysqli_connect_error());  
  10. exit;  
  11. }  
  12. /* Send a query to the server */  
  13. if ($result = mysqli_query($link"call se_proc('crm')")) {  
  14. /* Fetch the results of the query */  
  15. while$row = mysqli_fetch_array($result) ){  
  16. echo ($row[0]. "--------- SR. " . $row[1] . "  
  17. ");  
  18. }  
  19. /* Destroy the result set and free the memory used for it */  
  20. mysqli_free_result($result);  
  21. }   //Vevb.com 
  22. /* Close the connection */  
  23. mysqli_close($link);  
  24. ?> 

这个查找后会返回数据数据集.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表