在 PHP 和 MySQL 中进行事务日志记录,可以通过以下几个步骤实现:
transaction_log 的表,包含以下字段:id(主键,自增),transaction_id(事务ID),action(操作类型,如 INSERT、UPDATE、DELETE 等),table_name(操作表名),old_data(旧数据,适用于 UPDATE 和 DELETE 操作),new_data(新数据,适用于 INSERT 和 UPDATE 操作),created_at(创建时间)。CREATE TABLE transaction_log ( id INT AUTO_INCREMENT PRIMARY KEY, transaction_id INT NOT NULL, action VARCHAR(255) NOT NULL, table_name VARCHAR(255) NOT NULL, old_data TEXT, new_data TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); transaction_log 表中。<?php // 连接到 MySQL 数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 开始事务 $conn->begin_transaction(); try { // 预处理 SQL 语句 $stmt = $conn->prepare("INSERT INTO transaction_log (transaction_id, action, table_name) VALUES (?, ?, ?)"); $stmt->bind_param("iss", $transaction_id, $action, $table_name); $stmt->execute(); // 执行其他 SQL 操作(如 INSERT、UPDATE、DELETE 等) // ... // 提交事务 $conn->commit(); } catch (Exception $e) { // 发生错误时回滚事务 $conn->rollback(); echo "Error: " . $e->getMessage(); } finally { // 关闭预处理语句 $stmt->close(); } // 关闭数据库连接 $conn->close(); ?> 通过这种方式,您可以在 PHP 和 MySQL 中记录事务日志。请注意,这个示例仅用于演示目的,实际应用中可能需要根据您的需求进行调整。