private function _init_db() { $sql = 'CREATE TABLE IF NOT EXISTS ' . $this->tablename . ' ( '; $sql .= '`id` bigint(20) NOT NULL AUTO_INCREMENT'; foreach ($this->fields as $name => $v) { if (!isset($v['type'])) { //neccessary continue; } $fieldstr = ', '; $fieldstr .= sprintf("`%s` %s", $name, $v['type']); if (isset($v['len'])) { $fieldstr .= sprintf("(%d)", intval($v['len'])); } if (isset($v['notnull']) && $v['notnull'] === true) { $fieldstr .= ' NOT NULL '; } if (isset($v['default'])) { if (is_numeric($v['default'])) { $fieldstr .= sprintf(' DEFAULT %d ', $v['default']); } else { $fieldstr .= sprintf(" DEFAULT '%s' ", $v['default']); } } $sql .= $fieldstr; } $sql .= ', PRIMARY KEY (`id`)'; foreach ($this->indexs as $name => $v) { if (count($v) <= 0) { //neccessary continue; } $indexstr = sprintf(', KEY `%s` (', $name); foreach ($v as $field) { $indexstr .= sprintf(' `%s`,', $field); } $indexstr = substr($indexstr, 0, -1); //sub last ',' $indexstr .= ')'; $sql .= $indexstr; } $sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 '; return Common_Db_Base::query($sql); }