数据库插入codeigniter

时间:2014-03-21 07:37:12

标签: php database codeigniter

我正在开发一个项目,这里是代码,问题是我想在$ newMedicament中添加$ newRapport数组值(VIS_MATRICULE,RAP_NUM)。     如果(isset($ _ POST [' add_rapport'])){

$newRapport = array (//'VIS_MATRICULE'=>$this->input->post('VIS_MATRICULE'), 
                'VIS_MATRICULE'=>$_POST['VIS_MATRICULE'],
            'RAP_NUM'=> '',
            'PRA_NUM'=>$_POST['PRA_NUM'],
            'RAP_DATE'=>$_POST['RAP_DATE'],
            'RAP_BILAN'=>$_POST['RAP_BILAN'],
            'RAP_MOTIF'=>$_POST['RAP_MOTIF']);
                 $this->db->insert('rapport_visite', $newRapport);

         // Pour Les Composants

                       //Pour les Médicaments                      
$newMedicament = array ('VIS_MATRICULE'=>$_POST['VIS_MATRICULE'],
                        'RAP_NUM'=> '',
                        'MED_DEPOTLEGAL'=>$_POST['MED_DEPOTLEGAL'],
                        'OFF_QTE'=>$_POST['OFF_QTE']) ;
                 $this->db->insert('offrir', $newMedicament);

        }

问题是它说:

A Database Error Occurred

Error Number: 1452

Cannot add or update a child row: a foreign key constraint fails (`swissvisite`.`offrir`, CONSTRAINT `offrir_ibfk_2` FOREIGN KEY (`VIS_MATRICULE`, `RAP_NUM`) REFERENCES `rapport_visite` (`VIS_MATRICULE`, `RAP_NUM`))

INSERT INTO `offrir` (`VIS_MATRICULE`, `RAP_NUM`, `MED_DEPOTLEGAL`, `OFF_QTE`) VALUES ('a131', '', 'EVILR7', '2')

Filename: C:\wamp\www\code\system\database\DB_driver.php

Line Number: 330

1 个答案:

答案 0 :(得分:0)

1.看起来你的桌子swissvisite正在破坏约束offrir_ibfk_2。您了解外键约束依赖于数据完整性。您无法更新TableA(swissvisite),除非(rav_MATRICULE , RAP_NUM)存在于rapport_visite表中,用于插入swissvisite的记录。

2.看起来你在控制器中这样做:这是不正确的:

在构造中加载模型:

     public function __construct()
           {
                parent::__construct();

            $this->load->model('mymodel');


           }

  public function myfunction()
{
$myarray  = $_POST['mydata'];
//call your model
$this->mymodel->insert_into_db($myarray);


}


}

最后请不要将$ _POST数据直接传递到您的查询中,将其绑定到变量并传递给它们。