db = $db; $this->db_tools = $db_tools; $this->table_prefix = $table_prefix; $this->phpbb_root_path = $phpbb_root_path; $this->php_ext = $php_ext; $this->errors = array(); } /** * Defines other migrationsto be applied first (abstract method) * * @return array An array of migration class names */ public function depends_on() { return array(); } /** * Updates the database schema by providing a set of change instructions * * @return array */ public function update_schema() { return array(); } /** * Updates data by returning a list of instructions to be executed * * @return array */ public function update_data() { } /** * Wrapper for running queries to generate user feedback on updates */ protected function sql_query($sql) { if (defined('DEBUG_EXTRA')) { echo "
\n{$sql}\n
"; } $this->db->sql_return_on_error(true); if ($sql === 'begin') { $result = $this->db->sql_transaction('begin'); } else if ($sql === 'commit') { $result = $this->db->sql_transaction('commit'); } else { $result = $this->db->sql_query($sql); if ($this->db->sql_error_triggered) { $this->errors[] = array( 'sql' => $this->db->sql_error_sql, 'code' => $this->db->sql_error_returned, ); } } $this->db->sql_return_on_error(false); return $result; } }