代碼如下:
$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)){ //依次取得字段名 $html' target='_blank'>value=current($row); //依次取得字段值 } }
實例一:無參的存儲過程
$conn = mysql_connect('localhost','root','root') or die ("數據連接錯誤!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT INTO user (id, username, sex) VALUES (NULL, 's', '0');end; ";mysql_query($sql);//創建一個myproce的存儲過程
實例二:傳入參數的存儲過程
$sql = "create procedure myproce2(in score int)beginif score >= 60 thenselect 'pass';elseselect 'no';end if;end; ";mysql_query($sql);//創建一個myproce2的存儲過程$sql = "call test.myproce2(70);";mysql_query($sql);//調用myproce2的存儲過程,看不到效果,可以在cmd下看到結果。
實例三:傳出參數的存儲過程
$sql = "create procedure myproce3(out score int)beginset score=100;end; ";mysql_query($sql);//創建一個myproce3的存儲過程$sql = "call test.myproce3(@score);";mysql_query($sql);//調用myproce3的存儲過程$result = mysql_query('select @score;');$array = mysql_fetch_array($result);echo '<pre>';print_r($array);
實例四:傳出參數的inout存儲過程
$sql = "create procedure myproce4(inout sexflag int)beginSELECT * FROM user WHERE sex = sexflag;end; ";mysql_query($sql);//創建一個myproce4的存儲過程$sql = "set @sexflag = 1";mysql_query($sql);//設置性別參數為1$sql = "call test.myproce4(@sexflag);";mysql_query($sql);//調用myproce4的存儲過程,在cmd下面看效果
實例五:使用變量的存儲過程
$sql = "create procedure myproce5(in a int,in b int)begindeclare s int default 0;set s=a+b;select s;end; ";mysql_query($sql);//創建一個myproce5的存儲過程$sql = "call test.myproce5(4,6);";mysql_query($sql);//調用myproce5的存儲過程,在cmd下面看效果
實例六:case語法
$sql = "create procedure myproce6(in score int)begincase scorewhen 60 then select '及格';when 80 then select '及良好';when 100 then select '優秀';else select '未知分數';end case;end; ";mysql_query($sql);//創建一個myproce6的存儲過程$sql = "call test.myproce6(100);";mysql_query($sql);//調用myproce6的存儲過程,在cmd下面看效果
實例七:循環語句
$sql = "create procedure myproce7()begindeclare i int default 0;declare j int default 0;while i<10 doset j=j+i;set i=i+1;end while;select j;end; ";mysql_query($sql);//創建一個myproce7的存儲過程$sql = "call test.myproce7();";mysql_query($sql);//調用myproce7的存儲過程,在cmd下面看效果
實例八:repeat語句
$sql = " create procedure myproce8()begindeclare i int default 0;declare j int default 0;repeatset j=j+i;set i=i+1;until j>=10end repeat;select j;end; ";mysql_query($sql);//創建一個myproce8的存儲過程$sql = "call test.myproce8();";mysql_query($sql);//調用myproce8的存儲過程,在cmd下面看效果
實例九:loop語句
$sql = "create procedure myproce9()begindeclare i int default 0;declare s int default 0;loop_label:loopset s=s+i;set i=i+1;if i>=5 thenleave loop_label;end if;end loop;select s;end; ";mysql_query($sql);//創建一個myproce9的存儲過程$sql = "call test.myproce9();";mysql_query($sql);//調用myproce9的存儲過程,在cmd下面看效果
實例十:刪除存儲過程
mysql_query("drop procedure if exists myproce");//刪除test的存儲過程
相關推薦:
php存儲過程調用舉例
php存儲例程、存儲過程進階學習_PHP教程
關于php存儲cookie時path存放路徑放的詳細介紹
以上就是PHP存儲過程實例分析的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答