질문Q #15662
dbforge 사용 중 에러..
하늘치2016-10-19 18:18:44
혹시나 해서 남겨둡니다.
아래처럼 하면 문제가 없는데요..

 

$this->load->dbforge();
$fields = array(
                'id' => array(
                        'type' => 'INT',
                        'constraint' => 5,
                        'unsigned' => TRUE,
                        'auto_increment' => TRUE
                )
        );
$this->dbforge->add_field($fields);
$this->dbforge->add_key('id', TRUE); 
$this->create_table('table_name', true);

 

아래처럼 하면 문제가 생기더라구요.

$this->load->dbforge();
$this->dbforge->add_field('id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY');
$this->dbforge->add_key('id', TRUE);
$this->create_table('table_name', true);

 

뭐가 다른지 몰라 한참 헤매다가..

메뉴얼을 찬찬히 보니..

Passing raw strings as fields cannot be followed by add_key() calls on those fields.

영어로 되어 있어 대충 넘겼는데, 중요한 포인트가 들어가 있네요;;

배열로 넘기려니 보기도 안좋고 소스도 쭈욱 늘어나서 그랬던 건데..

그래서 아래처럼 했습니다. 

 

		$this->load->dbforge();

		$add_fields = array();
		$add_fields['id'] = array('type'=>'INT', 'constraint' => 10, 'unsigned' => TRUE, 'auto_increment' => TRUE);
		$this->dbforge->add_field($add_fields);
		$this->dbforge->add_key('id', TRUE);
		$attributes = array('ENGINE' => 'InnoDB');
		$this->dbforge->create_table('table_name', TRUE, $attributes);

 

이상 끗. ^^;

답변1
#1 한대승(불의회상) 2016-10-19 23:44:12
유용한 정보 감사 합니다.