同一數據庫下多張表結構相似,需批量刪除不同表中指定 ID 的記錄。避免為每張表重複編寫 SQL,追求代碼復用。
class Data {
private $pdo;
public function __construct() {
$this->pdo = new PDO("mysql:host=localhost;dbname=test", "user", "pass");
}
// 通用刪除:表名 + ID 數組
public function delete($table, array $ids) {
if (empty($ids)) return 0;
$placeholders = implode(',', array_fill(0, count($ids), '?'));
$sql = "DELETE FROM `$table` WHERE `id` IN ($placeholders)";
$stmt = $this->pdo->prepare($sql);
return $stmt->execute($ids);
}
}
// 使用示例
$db = new Data();
$db->delete('table1', [1,2,3,4,5]);
$db->delete('table2', [1,2,3,4,5]);
in_array($table, ['table1','table2'])),防止注入風險。$pdo->beginTransaction() 保證原子性。將更多 CRUD 操作封裝為基類 BaseModel,具體表模型繼承並指定 protected $table = 'xxx',進一步減少樣板代碼,邁向輕量級 ORM 雛形。