ホームページ >データベース >mysql チュートリアル >PHP を使用して MySQL でカスタム トリガー、ストレージ エンジン、関数を作成する方法
PHP を使用して MySQL でカスタム トリガー、ストレージ エンジン、および関数を作成する方法
MySQL は、書き込みカスタム トリガーの使用をサポートする人気のあるオープン ソース リレーショナル データベース管理システムです。 、PHP のストレージ エンジンと機能により、データベースの機能と柔軟性がさらに拡張されます。この記事では、PHP を使用して MySQL でカスタム トリガー、ストレージ エンジン、関数を作成する方法を紹介し、具体的なコード例を示します。
1. データベース トリガー
データベース トリガーは、特定のイベントが発生したときに特定の操作を自動的にトリガーする、データベース内に定義された特別なオブジェクトです。 MySQL では、PHP を使用してカスタム トリガーを作成できます。
ここでは、PHP を使用して、新しいレコードが挿入されたときにカウンターを自動的に更新するトリガーを作成する方法を示す例を示します:
DELIMITER // CREATE TRIGGER update_counter AFTER INSERT ON table_name FOR EACH ROW BEGIN DECLARE counter INT; SET counter = (SELECT COUNT(*) FROM table_name); UPDATE counter_table SET count = counter WHERE id = 1; END // DELIMITER ;
最初に、DELIMITER# を使用して区切り文字を定義します。 ## トリガー内で複数のステートメントを使用するためのコマンド記号。次に、
CREATE TRIGGER ステートメントを使用して、
update_counter という名前のトリガーを作成し、新しいレコードが
table_name テーブルに挿入された後にトリガーされるように指定します。
FOR EACH ROW は、テーブル内の行ごとにトリガーが 1 回起動されることを指定します。
BEGIN と
END の間のコード ブロックがトリガーの本体です。
counter という名前の整数変数を宣言し、それを
table_name テーブル内のレコード数に設定します。次に、
UPDATE ステートメントを使用して、カウンター値を
counter_table テーブルに更新します。
DELIMITER コマンドを使用してデフォルトの区切り文字を復元します。
<?php class CustomEngine { private $file; function __construct($table_name, $dir) { $this->file = $dir . '/' . $table_name . '.txt'; if (!file_exists($this->file)) { file_put_contents($this->file, ''); } } function insert($values) { $data = implode(',', $values); file_put_contents($this->file, $data . PHP_EOL, FILE_APPEND); } function select() { $data = file_get_contents($this->file); return explode(PHP_EOL, trim($data)); } } ?>上記のコードは、
CustomEngine というファイルを定義します。カスタムストレージエンジンクラス。コンストラクターでは、データが保存されるファイルへのパスを指定し、必要に応じてファイルを作成します。
insert メソッドは、ファイルにデータを挿入するために使用されます。カンマを使用してさまざまな値を区切り、各行の末尾に改行文字を追加します。
selectこのメソッドは、ファイルの内容を読み取り、改行に従って異なる行を分割し、配列を返すために使用されます。
<?php function custom_sum($a, $b) { return $a + $b; } mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $mysqli = new mysqli('localhost', 'username', 'password', 'database_name'); $result = $mysqli->query("SELECT custom_sum(1,2) AS sum"); $row = $result->fetch_assoc(); echo $row['sum']; // 输出结果为3 ?>上記のコードは、
custom_sum という名前の関数を定義しています。 2 つのパラメーターを受け取り、その合計を返すカスタム関数。
mysqli 拡張機能を使用して MySQL サーバーに接続し、クエリ ステートメントを実行し、カスタム関数
custom_sum を呼び出して 1 と 2 の合計を計算します。を入力し、結果を
sum という名前にします。
fetch_assoc メソッドを使用してクエリ結果の連想配列を取得し、出力ステートメントを通じて計算結果を出力します。
以上がPHP を使用して MySQL でカスタム トリガー、ストレージ エンジン、関数を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。