この記事の例では、PHP で mysql ストアド プロシージャを呼び出して実行し、ストアド プロシージャによって返された値を返す方法について説明します。参考のために共有したいと思います。具体的な分析は次のとおりです:
ストアド プロシージャを呼び出すメソッド。
あ。ストアド プロシージャに IN/INOUT パラメータがある場合は、変数を宣言してストアド プロシージャにパラメータを入力します。ただし、PHP 変数がない場合は、変数を動的に入力する方法はありません。 Mysql 変数を入力します。
b.ストアド プロシージャに OUT 変数がある場合、mysql 変数の宣言は特別であり、mysql サーバーはこの変数の存在を認識している必要があります。これは、mysql ステートメントを実行して set @mysqlvar=$ を入力することを意味します。 phpvar;
c. mysql_query()/mysql_db_query() を使用して、mysql 変数宣言ステートメントを実行します。
コードは次のとおりです:
このように、mysql サーバーに変数 @mysqlar があり、それが IN パラメーターであれば、その値を phpar から渡すことができます。
たとえば、mysqli 関数インスタンスを使用すると、まず mysql でストアド プロシージャを作成できます。コードは次のとおりです。
部門 ID を入力してください:
フォーム>
$ホスト名 = "ローカルホスト";
$ユーザー名 = "ルート";
$パスワード = "秘密";
$database = "製品";
if (IsSet ($_POST['submit'])) {
$dbh = 新しい mysqli($ホスト名, $ユーザー名, $パスワード, $データベース);
/* 接続を確認します */
If (mysqli_connect_errno()) {
printf("接続に失敗しました: %sn", mysqli_connect_error());
終了 ();
}
$dept_id = $_POST['dept_id']
If ($result_set = $dbh->query("callemployee_list( $dept_id )")) {
print ('
従業員 ID | 姓 | 名 |
このemployee_listはmysqlストアドプロシージャです。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。