2017-05-16 189 views
0

我一直有意將數據插入到現有表格,並在有人註冊時自動創建表格,但我遇到了一些問題。使用codeigniter創建表格錯誤並創建多個表格

這是我form_reg

<div class="row"> 
     <div class="col-md-12"> 
      <form enctype="multipart/form-data" method="POST" action="<?php echo base_url()?>index.php/tr/reg"> 
       <table style="width:110%" class="table table-striped table table-bordered table table-hover"> 
        <tr> 
         <td>Nama Lengkap</td> 
         <td><input class="form-control" type="text" name="nama"/></td> 
        </tr> 
        <tr> 
         <td>Username</td> 
         <td><input class="form-control" type="text" name="username"/></td> 
        </tr> 
        <tr> 
         <td>Password</td> 
         <td><input class="form-control" type="password" name="password"/></td> 
        </tr> 
        <tr> 
         <td>Nomor TBS</td> 
         <td><input class="form-control" type="number" name="no_tbs"/></td> 
        </tr> 
        <tr> 
         <td>Program</td> 
         <td><input class="form-control" type="text" name="program"/></td> 
        </tr> 

        <tr> 
         <td></td> 
         <td><button class="btn btn-info" type="submit" name="btnsubmit" value="Simpan">Register</button> 

        </tr> 
       </table> 
      </form> 
     </div> 
    </div> 

,這我叫tr.php

public function reg(){ 
    $posts_fields=array(
    'id'=>array('type' => 'INT','constraint' => 11,'unsigned' => TRUE,'auto increment' => TRUE,'primary key' => TRUE), 
    'tanggal'=>array('type' =>'DATE','constraint' => 100), 
    'tbs_terhadap'=>array('type'=>'number','constraint' => 100), 
    'keterangan'=>array('type'=>'text','constraint' => 100), 
    'masuk'=>array('type'=>'number','constraint' => 100), 
    'keluar'=>array('type'=>'number','constraint' => 100), 
    'saldo_dsp'=>array('type'=>'number','constraint' => 100), 
    'tbs_id'=>array('type'=>'INT','constraint'=>11)); 

for($i = 1; $i <= 100000; $i++) { 
    $formattedNumber = sprintf('%05d', $i); 
    echo "<tr><td>$formattedNumber</td></tr>"; 


$this->dbforge->add_field($posts_fields); 
$this->dbforge->create_table('dsp'); 


    $nama = $_POST['nama']; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $no_tbs = $_POST['no_tbs']; 
    $program = $_POST['program']; 

     $data_insert = array(
      'nama' => $nama, 
      'username' => $username, 
      'password' => $password, 
      'no_tbs' => $no_tbs, 
      'program' => $program, 

     ); 

     $res = $this->mymodel->RegData('tbs_member', $data_insert); 


    if($res >= 1 && $result!==false){ 
     $this->session->set_flashdata('pesan','Register Success'); 
     header("location: /tbs/index.php/web?gagal=0&sukses=1"); 
    }else{ 
     header("location: /tbs/index.php/web/register?gagal=1"); 
    } 
} 

控制器,這是mymodel.php

public function RegData($tableName, $data) 
{ 
    $res = $this->db->insert($tableName, $data); 
    return $res; 
} 

UPDATE:我使用後$this->load->dbforge(),問題改變了這是一出後,我運行它

數據庫出錯

錯誤編號:1064

您的SQL語法錯誤;檢查對應於您MariaDB的服務器版本使用附近 '(100)NULL,tbs_terhadap VARCHAR(100)NULL,keterangan VARCHAR(100)NU' 在行3

CREATE TABLE dsp$formattedNumber正確的語法手冊(id INT (11)UNSIGNED NOT NULL AUTO_INCREMENT,tanggal DATE(100)NULL,tbs_terhadap VARCHAR(100)NULL,keterangan VARCHAR(100)NULL,masuk VARCHAR(100)NULL,keluar VARCHAR(100)NULL,saldo_dsp VARCHAR(100)NULL, tbs_id INT(11)NOT NULL,CONSTRAINT pk_dsp$formattedNumber PRIMARY KEY(id))DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci

文件名:C:/xampp/htdocs/genstore/tbs/system/database/DB_driver.php

行號:691

,也是我需要的信息,如果它的更多鈔票來一次創建多個表?如果它是請告訴我如何

這就是我需要問的所有問題..只是告訴我,如果有任何信息,我遺漏了..我有點新在這個請告訴我什麼是我的錯誤是?謝謝

+0

我回答了你的錯誤。如果你一次問很多事情,它會太寬泛。一旦你解決了一件事,檢查你的其他問題(可能已經有答案了)。另外,將mysql標記更改爲mariadb,因爲您的錯誤日誌顯示您正在使用MariaDB。 – Alfabravo

回答

0

您確定可以設置日期(100)字段嗎?在我看來,你的查詢失敗,因爲(你不需要指定一個DATE字段的長度)

CREATE TABLE dsp$formattedNumber ( 
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, 
tanggal DATE NULL, 
tbs_terhadap VARCHAR(100) NULL, 
keterangan VARCHAR(100) NULL, 
masuk VARCHAR(100) NULL, 
keluar VARCHAR(100) NULL, 
saldo_dsp VARCHAR(100) NULL, 
tbs_id INT(11) NOT NULL, 
CONSTRAINT pk_dsp$formattedNumber PRIMARY KEY(id)) 
DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci;