CodeZine(コードジン)

特集ページ一覧

WindowsでPHPからストアドプロシージャ/ストアドファンクションを実行する

コードの単純化と高速化を実現

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/12/07 14:00

ダウンロード サンプルコード (2.7 KB)

目次

MySQLでのストアドプロシージャの呼び出し

 MySQL内でストアドプロシージャを呼び出すには、次のcallメソッドを使います。

call books.proc(@a);
select @a;

MySQLでのストアドファンクションの作成

 ファンクション(すなわち関数)を作成するときは、ストアドプロシージャとの次の違いに注意してください。

  • キーワードprocedureをキーワードfunctionに置き換える
  • すべてINパラメータなので、パラメータの方向を指定する必要はない
  • パラメータリストに続け、キーワードRETURNSで戻り値の型を指定する
  • BEGIN...ENDブロックは必要ない
  • 関数を呼び出すには、構文select function(parameter_list)を使う

 関数を作成する構文は次のとおりです。

CREATE FUNCTION function_name ([function_parameter[,...]])
RETURNS type
routine_body

 次の例は、計算をして整数値(int)を返す簡単なストアドファンクションです。

CREATE FUNCTION simple_operation (price int) RETURNS int
RETURN price*1000

 これをSQL Serverから呼び出すには、次の構文を使います。

SELECT simple_operation(5)

 この例の戻り値は5000です。

PHPからストアドプロシージャを呼び出す

 PHPからMySQLのストアドプロシージャ/ストアドファンクションを呼び出すには、次のデータベースエクステンションが必要です。

 これらのエクステンションをインストールした後、PHPからMySQLのストアドプロシージャ/ストアドファンクションを呼び出すことができます。既に述べたように、MySQLのストアドプロシージャとファンクションは特定のデータベースに関連付けられます。以下の例では、次のSQLステートメントで作成したbooksデータベースを使用します。

create table bookstore 
   (id int not null auto_increment primary key,
    book varchar(50),
    author varchar(50),
    isbn varchar(50),
    price int);

 図1のブックストアテーブル(bookstore)の設定に用いたSQLステートメントは次のとおりです。

INSERT INTO bookstore (id,book,author,isbn,price) VALUES   
  (1,"Introduction to PHP","Mark User","3334-4424-334-3433",500)
INSERT INTO bookstore (id,book,author,isbn,price) VALUES 
  (2,"DHTML and CSS","Teague Sanders","4545-23-23-23-23232",1500)
INSERT INTO bookstore (id,book,author,isbn,price) VALUES 
  (3,"Introduction to PHP","Weeling Tom","4334-2323-23233-434",300)
INSERT INTO bookstore (id,book,author,isbn,price) VALUES 
  (4," Web design"," Weeling Tom"," 4334-2323-23233-434",600)
INSERT INTO bookstore (id,book,author,isbn,price) VALUES 
  (5," PHP 5"," Weeling Tom"," 444-87-67665-678678",600)
INSERT INTO bookstore (id,book,author,isbn,price) VALUES 
  (6," JavaServer Pages"," Tick Own"," 897-9898-987-099",800)

 図1に、テーブルbookstoreの構造と一部の内容を示します。

図1 ブックストアテーブル: テーブルの内容と構造(booksデータベースから取得)
図1 ブックストアテーブル: テーブルの内容と構造(booksデータベースから取得)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

著者プロフィール

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

  • Octavia Andreea Anghel(Octavia Andreea Anghel)

    経験豊富なPHP開発者。現在は、国内外のソフトウェア開発コンテストに参加するプログラミングチームの主任トレーナーを務める。国レベルの教育プロジェクト開発のコンサルティングも担当している。共著書に『XML technologies?XML in Java』があり、XML部分の執筆を担当。PHPやXML...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5