【问题标题】:Creating tables error and create multiple tables using codeigniter创建表错误并使用codeigniter创建多个表
【发布时间】:2017-05-16 19:11:52
【问题描述】:

我一直想在有人注册时将数据插入现有表并自动创建表,但我遇到了一些问题。

这是我的 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;
}

更新:在我使用$this-&gt;load-&gt;dbforge()后,问题发生了变化,这是我运行后出现的结果

发生数据库错误

错误号:1064

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 3 行的 '(100) NULL, tbs_terhadap VARCHAR(100) NULL, keterangan VARCHAR(100) NU' 附近使用正确的语法

创建表dsp$formattedNumber (id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, tanggal DATE(100) NULL, tbs_terhadap VARCHAR(100) NULL, keterangan VARCHAR(100) NULL, @987654332 @ VARCHAR(100) NULL, keluar VARCHAR(100) NULL, saldo_dsp VARCHAR(100) NULL, tbs_id INT(11) NOT NULL, 约束 pk_dsp$formattedNumber 主键(id) ) 默认字符集= utf8 整理 = utf8_general_ci

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

行号:691

如果可以一次创建多个表,我还需要信息吗?如果是,请告诉我如何

这就是我需要问的全部内容。如果有任何我遗漏的信息,请告诉我。我在这方面有点新,请告诉我我的错误是什么?谢谢

【问题讨论】:

  • 我回答了你的错误。如果你一次问很多事情,那就太宽泛了。一旦你解决了一件事,检查你的其他问题(也许已经有了答案)。此外,将 mysql 标记更改为 mariadb,因为您的错误日志显示您正在使用 MariaDB。

标签: php codeigniter mariadb


【解决方案1】:

您确定可以设置 DATE(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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2017-11-04
    • 2013-12-15
    相关资源
    最近更新 更多