ここでは、PHP と MySQL のストアド プロシージャを紹介します。
ストアド プロシージャは、SQL ステートメントと制御ステートメントで構成される再利用可能な SQL プログラムを指します。ストアド プロシージャを使用すると、大規模で複雑なクエリが簡素化され、使用と保守が容易になり、大規模なアプリケーションのパフォーマンスも向上します。 PHP と MySQL はどちらもストアド プロシージャをサポートしており、アプリケーションの一部として実行したり、開発や研究のサンプルとして使用したりできます。
ストアド プロシージャを使用するために、PHP と MySQL の両方が対応する関数と構文を提供します。以下では、PHP で MySQL ストアド プロシージャを使用する方法の基本的な構文を紹介します。
MySQL ストアド プロシージャを作成するための基本的な構文は次のとおりです。
CREATE PROCEDURE procedure_name ([IN/OUT] parameter_name data type [(size)]) BEGIN -- SQL Statements END;
このうち、「procedure_name」はストアド プロシージャの名前、「parameter_name」はオプションのパラメータ名です。 IN、OUT、または INOUT タイプを指定できます。「データ タイプ」はパラメータのデータ タイプ、「サイズ」はパラメータのサイズです。たとえば、「getcustomerinfo」という名前のストアド プロシージャを作成できます。
CREATE PROCEDURE getcustomerinfo (IN id INT) BEGIN SELECT * FROM customers WHERE customer_id = id; END;
PHP でストアド プロシージャを使用するための基本的な構文は次のとおりです。
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); // 调用存储过程 if ($stmt = $mysqli->prepare("CALL getcustomerinfo(?)")) { // 绑定参数 $stmt->bind_param("i", $id); // 执行存储过程 $stmt->execute(); // 获取结果集 $result = $stmt->get_result(); // 处理结果集 while ($row = $result->fetch_assoc()) { echo $row["customer_id"] . " " . $row["customer_name"] . "<br>"; } // 释放结果集 $result->free(); // 关闭语句 $stmt->close(); }
上の例では、最初にストアド プロシージャの場合、SQL ステートメントは「CALL getcustomerinfo(?)」です。次に、bind_param 関数を使用してパラメータをバインドします。この関数は 2 つのパラメータを受け入れます。1 つ目はパラメータ タイプの文字列で、2 つ目はパラメータ値です。この例では、整数値 $id をバインドしています。次に、ストアド プロシージャを実行し、fetch_assoc 関数を使用して結果セットから各行のデータを取得し、結果セットを取得します。最後に、結果セットを解放し、ステートメントを閉じます。
ストアド プロシージャを使用する場合は、次の点にも注意する必要があります。
要約すると、ストアド プロシージャは、アプリケーションをより効率的にし、保守を容易にする SQL プログラムです。PHP と MySQL はどちらもストアド プロシージャの使用をサポートしています。構文とストアド プロシージャの使用に習熟していれば、アプリケーションの開発とメンテナンスに役立ちます。
以上がPHP で MySQL ストアド プロシージャを使用する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。