public function JoinAll() { $found = false; $sql = 'ALTER TABLE ' . pdoMap_Database_Request_Adapters_MySQL_Builder::escapeTable($this->name, $this->database) . "\n"; foreach ($this->fields as $field) { if ($field->type == pdoMap_Mapping_Metadata_Field::FIELD_TYPE_FK) { $sql .= ' ADD CONSTRAINT ' . pdoMap_Database_Request_Adapters_MySQL_Builder::escapeEntity($this->name . '_' . $field->name) . ' FOREIGN KEY('; $sql .= pdoMap_Database_Request_Adapters_MySQL_Builder::escapeEntity($field->name); $sql .= ') REFERENCES '; $ref = pdoMap::structure($field->adapter); if (!$ref) { throw new Exception('Could not join ' . $field->bind . ' to an undefined table ' . $field->adapter); } $sql .= pdoMap_Database_Request_Adapters_MySQL_Builder::escapeTable($ref->name, $ref->db); $sql .= ' (' . pdoMap_Database_Request_Adapters_MySQL_Builder::escapeEntity($ref->getPk()->name) . ')'; $sql .= ' ON DELETE CASCADE, ' . "\n"; $found = true; } } if (!$found) { return true; } $sql = substr($sql, 0, strlen($sql) - 3); return pdoMap::database()->Request($this->database, $sql); }
public function EscapeEntity($entity) { return pdoMap_Database_Request_Adapters_MySQL_Builder::escapeEntity($entity); }
public function escapeObject($name) { return pdoMap_Database_Request_Adapters_MySQL_Builder::escapeEntity($name); }