MySQL ストアド プロシージャの概要と PHP で使用される例
MySQL ストアド プロシージャは、MySQL データベースの強力な機能です。アプリケーションから独立して実行し、一連の SQL ステートメントを実行して結果を返すことができるため、アプリケーション開発が簡素化され、サーバーの負荷を効果的に軽減し、データベースのパフォーマンスを向上させることもできます。この記事では、MySQL ストアド プロシージャに関する基礎知識を説明し、PHP で MySQL ストアド プロシージャを使用するためのサンプル コードを紹介します。
1. MySQL ストアド プロシージャの基本知識
MySQL ストアド プロシージャは、特定の機能タスクを完了するために使用されるプリコンパイルされた SQL ステートメントのコレクションです。関数とは異なり、ストアド プロシージャは入力パラメータと戻り値を受け入れることができ、異なるクライアント間で共有できます。
MySQL ストアド プロシージャの構文は次のとおりです:
CREATE [OR REPLACE] PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name datatype [, ...]) BEGIN -- 执行内容 END;
CREATE PROCEDURE はストアド プロシージャの作成を意味します; OR REPLACE はオプションであり、同じ名前のストアド プロシージャがすでに存在する場合は置き換えることを示します元のストアド プロシージャ、procedure_name はストアド プロシージャの名前を示し、parameter_name はストアド プロシージャの入出力パラメータ名を示し、datatype はパラメータのデータ型を示します。
次の例は、単純な MySQL ストアド プロシージャの作成方法を示しています:
CREATE PROCEDURE my_procedure(IN name VARCHAR(50)) BEGIN SELECT * FROM users WHERE name = name; END;
2. PHP での MySQL ストアド プロシージャの使用
PHP で MySQL ストアド プロシージャを使用すると、非常に便利です。 PHP は、MySQL ストアド プロシージャを呼び出すための 2 つのインターフェイス、mysqli と PDO を提供します。ここでは、mysqli を例として、参考用のサンプル コードを紹介および提供します。
まず、MySQL データベースに接続する必要があります。具体的な方法は次のとおりです:
$mysqli = new mysqli("localhost", "root", "", "test"); if ($mysqli->connect_error) { die("连接失败: " . $mysqli->connect_error); }
次に、ストアド プロシージャを呼び出してパラメータを渡す必要があります。 Mysqli には、bind_param と call_user_func_array という 2 つのメソッドが用意されていますが、ここでは、bind_param を例として説明します。
// 准备参数 $name = "Tom"; // 准备调用存储过程的语句 $stmt = $mysqli->prepare("CALL my_procedure(?)"); $stmt->bind_param("s", $name); // 绑定参数 // 执行存储过程 $stmt->execute(); // 处理返回结果 $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { echo $row['id'] . " " . $row['name'] . " " . $row['age'] . "<br/>"; } // 释放资源 $stmt->close(); $mysqli->close();
上記のコードでは、my_procedure ストアド プロシージャを呼び出し、文字列型パラメータを渡します。 bind_param の最初のパラメータはパラメータの型です。ここでは s を使用して文字列型を表します。詳細については、PHP の公式ドキュメントを参照してください。ストアド プロシージャを実行した後、get_result を通じて返された結果セットを取得し、データの各行を順番に出力します。
概要
この記事では、MySQL ストアド プロシージャの基本と、PHP で MySQL ストアド プロシージャを使用するためのサンプル コードを紹介します。ストアド プロシージャを使用すると、SQL ステートメントをより効率的に処理でき、データベースのパフォーマンスが向上し、アプリケーションとの対話も容易になります。実際の開発では、ストアド プロシージャまたはその他の方法を使用して、特定のシナリオに従ってデータベースを操作することを選択できます。
以上がPHP で MySQL ストアド プロシージャを使用する方法を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。