setSql ($sql); $this->setPrefix ($prefix); } function __toString () { return $this->introduceTablePrefix ($this->getSql ()); } private function introduceTablePrefix ($query) { if ($prefix = $this->getPrefix ()) { $snippets = array ( 'ALTER TABLE', 'DROP TABLE IF EXISTS', 'CREATE TABLE', 'CREATE TABLE IF NOT EXISTS', 'INSERT INTO', 'REPLACE INTO', 'TRUNCATE', ); foreach ($snippets as $snippet) { $query = str_replace ($snippet . self::OPENING_QUOTE, $snippet . self::OPENING_QUOTE . $prefix, $query); } } $query = str_replace (':prefix:', $prefix, $query); return $query; } protected function setSql ($sql) { $this->sql = $sql; } protected function getSql () { return $this->sql; } function setPrefix ($prefix) { $this->prefix = $prefix; } function getPrefix () { if (! isset ($this->prefix)) { return Database::instance ()->table_prefix (); } return $this->prefix; } }