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 サイトの他の関連記事を参照してください。