db = $db; $this->table_name = Utilities::get_db_configs()->prefix . $table_name; } protected function start() { $this->sql['start'] = 'DELETE FROM ' . $this->table_name; } public function drop() { $this->sql['drop'] = 'DROP TABLE ' . $this->table_name; return $this; } public function dropIfExists() { $this->sql['drop'] = 'DROP TABLE IF EXISTS ' . $this->table_name; return $this; } private function driver_exicute($sql) { $driver = $this->db; if (class_exists('wpdb') && $driver instanceof \wpdb) { if (empty($this->params)) { return $driver->query($sql); } return $driver->query($driver->prepare($sql, $this->params)); } $data = $driver->prepare($sql); try { return $data->execute($this->params); } catch (\PDOException $exception) { Utilities::throughException($exception); } } private function delete_data() { $query = SqlGenerator::delete($this->sql); return $this->driver_exicute($query); } // get only sql query string public function getSql() { $this->start(); $query = [ 'query' => SqlGenerator::delete($this->sql), 'params' => $this->params, ]; return $query; } public function execute() { $this->start(); $this->delete_data(); } }