Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL:无法添加或更新子行:在Codeigniter中将我的数据插入数据库时,外键约束失败_Php_Mysql_Database_Codeigniter - Fatal编程技术网

Php MySQL:无法添加或更新子行:在Codeigniter中将我的数据插入数据库时,外键约束失败

Php MySQL:无法添加或更新子行:在Codeigniter中将我的数据插入数据库时,外键约束失败,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,我遇到如下错误:无法添加或更新子行:当使用Codeigniter将数据插入数据库phpmyadmin时,外键约束失败 这是我的错误消息: 无法添加或更新子行:外键约束失败(tugasakhirtb\u pasien,约束tb\u pasien\u ibfk\u 1外键(kode\u pasien)引用tb\u jk(kode\u jk)在更新级联时删除级联) 插入tb\u pasien(nama\u pasien,email\u pasien,username,password,alamat\

我遇到如下错误:无法添加或更新子行:当使用Codeigniter将数据插入数据库phpmyadmin时,外键约束失败

这是我的错误消息:

无法添加或更新子行:外键约束失败(
tugasakhir
tb\u pasien
,约束
tb\u pasien\u ibfk\u 1
外键(
kode\u pasien
)引用
tb\u jk
kode\u jk
)在更新级联时删除级联)

插入
tb\u pasien
nama\u pasien
email\u pasien
username
password
alamat\u pasien
tangal\u lahir
umur
kode\u jk
无电话号码
)值(‘南都’,’gustiayuri@gmail.com","南道库","827ccb0eea8a706c4c34a16891f84e7b","达隆","1995年11月12日","21","L

这是我的控制器:

型号:

查看


在插入tb_pasien之前,必须在tb_jk表中提供kode_jk值。

注意:外键和引用中指定的子表和父表中的列数必须相同,并且数据类型也必须相同

表“tb_pasien”:

CREATE TABLE `tb_pasien` (
  `kode_pasien` int(11) NOT NULL AUTO_INCREMENT,
  `nama_pasien` varchar(20) NOT NULL,
  `email_pasien` varchar(20) NOT NULL,
  `username` varchar(20) NOT NULL,
  `password` varchar(255) NOT NULL,
  `alamat_pasien` text NOT NULL,
  `tanggal_lahir` date NOT NULL,
  `umur` int(2) NOT NULL,
  `kode_jk` int(11) NOT NULL,
  `no_telp` int(20) NOT NULL,
  `no_antrian` int(3) NOT NULL,
  PRIMARY KEY (`kode_pasien`),
  CONSTRAINT `tb_pasien_ibfk_1` FOREIGN KEY (`kode_jk`) REFERENCES `tb_jk` (`kode_jk`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1


CREATE TABLE `tb_jk` (
  `kode_jk` int(11) NOT NULL AUTO_INCREMENT,
  `nama_jk` varchar(1) NOT NULL,
  PRIMARY KEY (`kode_jk`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

确保在子表之前插入主表。
您还可以在插入中禁止外键检查。

在我的例子中,将设置外键的字段名添加到“允许的\u字段”模型中的数组,修复了问题。

我已经在我的tb_jk上插入了值。检查我的帖子,我编辑了它。@abhay你已经用1和2硬编码了它。你从kode_jk中选择了哪个值?我需要从kode_jk在我的tb_pasien上显示L或p。你传递了kode_jk的Laki-Laki值,这是错误的,它必须是int类型,你只能传递kode_jk值已经存在于tb_jk表中。oopps,对不起,我的错误。我已经将其更改为L值。但现在,它显示的是1而不是L。我只想显示L或P,而不是1或2。这是工作,但我的问题现在,我需要在我的tb_pasien上从kode_jk显示L或P,但它一直显示1或2,而不是L或P@pradeep。更改外键如下:CON应变
tb_pasien_ibfk_1
外键('nama_jk')引用
tb_jk
('nama_jk'))在更新CASCADE时删除CASCADE嗯,对不起。当我尝试使用phpmyadmin更改它时,它是不允许的。我刚刚意识到为什么它会因为我在视图上的选项值而一直显示1或2 t。不要忘了在tb_pasien中将字段名从kode_jk更改为nama_jk,并将字段的数据类型更改为nama_jk。因此,nama_jk将是首选钥匙?但这不是很奇怪吗?
    function insert_entry($data_pasien, $data_jk) {

    $this->db->insert('tb_pasien', $data_pasien);

    $data_pasien['kode_jk'] = $this->db->insert_id();

    $this->db->insert('nama_jk', $data_pasien);

}
 <!-- form start -->
        <form role="form" action="<?php echo base_url().'index.php/a_controller/tambahmanual' ?>" method="post">
          <div class="box-body">

            <div class="form-group">
              <label for="exampleInputNama">Nama Pasien</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-user"></i></span>
                    <input type="text" class="form-control" name="nama_pasien" id="exampleInputNama" placeholder="Nama Pasien">
                </div>
            </div>

            <div class="form-group">
                <label for="exampleInputEmail">Email Pasien</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-envelope"></i></span>
                    <input type="text" class="form-control" name="email_pasien" id="exampleInputEmail" placeholder="Email Pasien">
                </div>
            </div>

            <div class="form-group">
              <label for="exampleInputUsername">Username</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-user"></i></span>
                    <input type="text" class="form-control" name="username" id="exampleInputUsername" placeholder="Username">
                </div>
            </div>

            <div class="form-group">
              <label for="exampleInputPassword">Password</label>
              <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-key"></i></span>
                    <input type="text" class="form-control" name="password" id="exampleInputPassword" placeholder="Password">
                </div>
            </div>

            <div class="form-group">
              <label for="exampleInputAlamat">Alamat</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-home"></i></span>
                    <input type="text" class="form-control" name="alamat_pasien" id="exampleInputAlamat" placeholder="Alamat">
                </div>
            </div>

            <div class="form-group">
            <label>Tanggal lahir</label>

            <div class="input-group date">
              <div class="input-group-addon">
                <i class="fa fa-calendar"></i>
              </div>
              <input type="date" name="tanggal_lahir" class="form-control">
            </div>
            <!-- /.input group -->
            </div>

            <div class="form-group">
              <label for="exampleInputUmur">Umur</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-user"></i></span>
                    <input type="text" class="form-control" name="umur" id="exampleInputUmur" placeholder="Umur">
                </div>
            </div>

            <div class="form-group">
              <label>Jenis Kelamin</label>
              <select name="kode_jk" class="form-control">
                <option value="1">L</option>
                <option value="2">P</option>
              </select>
            </div>

            <div class="form-group">
              <label for="exampleInputTelp">No. Telp</label>
                <div class="input-group">
                    <span class="input-group-addon"><i class="fa fa-phone"></i></span>
                    <input type="text" class="form-control" name="no_telp" id="exampleInputTelp" placeholder="No. Telp">
                </div>
            </div>


            

          </div>
          <!-- /.box-body -->

          <div class="box-footer">
            <button type="submit" class="btn btn-primary">Submit</button>
          </div>
        </form>
CREATE TABLE `tb_pasien` (
  `kode_pasien` int(11) NOT NULL AUTO_INCREMENT,
  `nama_pasien` varchar(20) NOT NULL,
  `email_pasien` varchar(20) NOT NULL,
  `username` varchar(20) NOT NULL,
  `password` varchar(255) NOT NULL,
  `alamat_pasien` text NOT NULL,
  `tanggal_lahir` date NOT NULL,
  `umur` int(2) NOT NULL,
  `kode_jk` int(11) NOT NULL,
  `no_telp` int(20) NOT NULL,
  `no_antrian` int(3) NOT NULL,
  PRIMARY KEY (`kode_pasien`),
  CONSTRAINT `tb_pasien_ibfk_1` FOREIGN KEY (`kode_jk`) REFERENCES `tb_jk` (`kode_jk`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1


CREATE TABLE `tb_jk` (
  `kode_jk` int(11) NOT NULL AUTO_INCREMENT,
  `nama_jk` varchar(1) NOT NULL,
  PRIMARY KEY (`kode_jk`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1