MySQL と PHP は Web 開発でよく使われる技術ですが、その中でもストアド プロシージャは MySQL の重要な機能です。この記事では、MySQL ストアド プロシージャを紹介し、PHP 言語と組み合わせて実装します。
MySQL ストアド プロシージャは、プログラム内で定義して呼び出すことができる再利用可能な SQL コード ブロックです。これは、パラメーターを受け入れて値を返す関数に似ています。ストアド プロシージャは MySQL サーバー側に保存し、クライアント コードから呼び出すことができます。
MySQL ストアド プロシージャの構文は、他の言語の関数やプロシージャと似ています。これは、CREATE、PROCEDURE、END の 3 つのキーワードで構成されます。 CREATE PROCEDURE キーワードの後にストアド プロシージャの名前とパラメータ リストが続き、次にストアド プロシージャの本体、最後に END キーワードが続きます。
以下は簡単な MySQL ストアド プロシージャの例です:
CREATE PROCEDURE `get_employee`(IN id INT, OUT name VARCHAR(50), OUT age INT) BEGIN SELECT `name`, `age` INTO name, age FROM `employee` WHERE `id` = id; END
上記のストアド プロシージャは id パラメータを受け取り、その ID に対応する名前と年齢を従業員テーブルからクエリし、割り当てます。名前と年齢の出力パラメータ。
PHP コードで MySQL ストアド プロシージャを呼び出すのは非常に簡単です。ストアド プロシージャを呼び出すには、MySQLi 拡張機能または PDO 拡張機能によって提供される CALL ステートメントを使用できます。以下は、MySQLi 拡張機能を使用して MySQL ストアド プロシージャを呼び出すサンプル コードです。
// 配置连接参数 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 建立连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 调用存储过程 $id = 1; $stmt = $conn->prepare("CALL get_employee(?, ?, ?)"); $stmt->bind_param("i", $id); $stmt->bind_result($name, $age); $stmt->execute(); $stmt->fetch(); $stmt->close(); echo "Name: ".$name.", Age: ".$age;
上記のコードは、MySQL データベースに接続し、CALL ステートメントを通じて get_employee という名前のストアド プロシージャを呼び出し、 idパラメータ。次に、bind_result メソッドを使用してストアド プロシージャの出力パラメータを PHP 変数にバインドし、最後にストアド プロシージャを実行し、fetch メソッドを使用して出力パラメータ値を取得します。
MySQL ストアド プロシージャは、コードの再利用性の向上、データ セキュリティの強化、パフォーマンスの向上、データベース インタラクションの削減を可能にする非常に実用的な機能です。 PHP コードで MySQL ストアド プロシージャを呼び出すのも非常に簡単で、MySQLi 拡張機能または PDO 拡張機能によって提供される CALL ステートメントを使用するだけです。この記事が、MySQL ストアド プロシージャと PHP でのストアド プロシージャ呼び出しについての理解を深めるのに役立つことを願っています。
以上がPHP で MySQL ストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。