用 PHP 呼叫 MySQL 儲存過程

2021-09-21 04:03:41 字數 3334 閱讀 4117

mysql 5.0 以上支援儲存過程。

php 5.0 以上的 mysqli 系列函式可以支援操作 mysql 的儲存過程。

以下是一些簡單的儲存過程和用 php 呼叫的示例。

一、返回單個資料:

1:  <?php 2:    header(」content-type:text/html;charset=utf-8″); 3:    4:    

$host

= 「localhost」; 5:    

$user

= 「root」; 6:    

$password

= 「mypassword」; 7:    

$db= 「test_store_proc」; 8:    

$dblink

= mysqli_connect(

$host

, $user

, $password

, $db

) or

die(」can』t connect to mysql」); 9:   10:    

$dblink

->query(』set names utf8′);11:    if(

$result

= $dblink

->query(」call sp_test0(@num, @x, 123)」))12:    23:    else24:      

echo

『error…』;25:    mysqli_close(

$dblink

);26:   27:  

/*28:  – procedure 「sp_test0″ ddl29:  create definer=`root`@`localhost` procedure `sp_test0`(out num int, out x varchar(16), in n int)30:  begin31:    declare nouse int;32:    declare tmp int;33:   34:    select nid into nouse from open_news where nid=39;35:    select count(*) into tmp from open_news;36:    set num = tmp;37:   38:    set x = 『***』;39:  end;40:  */

41:  ?>42:    

二、返回結果集:

:  <?php 2:    header(」content-type:text/html;charset=utf-8″); 3:    4:    

$host

= 「localhost」; 5:    

$user

= 「root」; 6:    

$password

= 「mypassword」; 7:    

$db= 「test_store_proc」; 8:    

$dblink

= mysqli_connect(

$host

, $user

, $password

, $db

) or

die(」can』t connect to mysql」); 9:   10:    

$dblink

->query(』set names utf8′);11:    if(

$result

= $dblink

->query(」call sp_test1()」))12:    17:      mysqli_free_result(

$result

);18:    }19:    else20:      

echo

『error…』;21:    mysqli_close(

$dblink

);22:   23:  

/*24:  – procedure 「sp_test1″ ddl25:  create definer=`root`@`localhost` procedure `sp_test1`()26:  begin27:     select * from open_news where nid<40;28:  end;29:  */

30:  ?> 

三、返回多個結果集:

:  <?php 2:    header(」content-type:text/html;charset=utf-8″); 3:    4:    

$host

= 「localhost」; 5:    

$user

= 「root」; 6:    

$password

= 「mypassword」; 7:    

$db= 「test_store_proc」; 8:    9:    

$dblink

= new

mysqli(

$host

, $user

, $password

, $db

);10:    

if(mysqli_connect_errno())11:    15:    else16:      print(』?????? mysql ????????

』);17:   18:    

$dblink

->query(』set names utf8′);19:    

$rows

= array

();20:    if(

$dblink

->real_query(」call sp_test2()」))21:    30:          

$result

->close();31:        }32:      }33:      

while

($dblink

->next_result());34:    }35:    else36:      

echo

『error…』;37:   38:    

$dblink

->close();39:   40:    print_r(

$rows

);41:  

/*42:  – procedure 「sp_test2″ ddl43:  create definer=`root`@`localhost` procedure `sp_test2`()44:  begin45:    select nid,stopic2 from open_news limit 0, 5;46:    select count(nid) as counter from open_news;47:  end;48:  */

49:  ?> 

用 PHP 呼叫 MySQL 儲存過程

mysql 5.0 以上支援儲存過程。php 5.0 以上的 mysqli 系列函式可以支援操作 mysql 的儲存過程。以下是一些簡單的儲存過程和用 php 呼叫的示例。一 返回單個資料 1 2 header content type text html charset utf 8 3 4 hos...

php呼叫mysql 儲存過程

php可以通過查詢語句 call procedurename 來呼叫mysql的儲存過程。但不能使用mysql 相關函式得用mysqli 相關函式。建立儲存過程 use test create procedure sta select from ta connstr mysqli connect l...

MySQL呼叫儲存過程

使用儲存過程,可以使程式執行效率更高,安全性更好,增強程式的可重用性和維護性 儲存過程有多種呼叫方法 儲存過程必須使用call語句呼叫,並且,儲存過程和資料庫相關,如果,要執行其他資料庫中的儲存過程,需要指定資料庫名稱 語法格式 call sp name parameter sp name,為儲存過...