【问题标题】:PHP/Codeigniter-How can I insert data to multi table with same sql?PHP/Codeigniter-如何将数据插入到具有相同 sql 的多表中?
【发布时间】:2014-04-08 03:15:42
【问题描述】:

我想用 PHP-codeigniter 框架在同一个 sql 中将表单中的数据插入到多表中。有一个问题我找不到。请帮帮我。

谢谢。

控制器在这里:customer.php

...
    public function editprofile(){

     $this->load->library('form_validation');
      $this->form_validation->set_rules('input_email', 'Email Adresi', 'trim|required|min_lenght[6]|max_lenght[25]|valid_email|xss_clean');
      $this->form_validation->set_rules('input_birthday', 'Doğum Tarihi', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      $this->form_validation->set_rules('cinsiyet[]', 'Cinsiyet', 'trim|required|min_lenght[6]|max_lenght[20]|matches[input_password2]|xss_clean');
      $this->form_validation->set_rules('select_city', 'Şehir', 'trim|required|min_lenght[6]|max_lenght[20]|xss_clean');
      $this->form_validation->set_rules('input_phone', 'Telefon Numarası', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean'); 
      $this->form_validation->set_rules('input_comSname', 'Firma Kısa Adı', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean'); 
      $this->form_validation->set_rules('input_comname', 'Firma Tam Adı', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean'); 
      $this->form_validation->set_rules('select_comcity', 'Firma Yeri', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean'); 
      $this->form_validation->set_rules('input_comemail', 'Firma Email Adresi', 'trim|required|min_lenght[6]|max_lenght[25]|valid_email|xss_clean');
      $this->form_validation->set_rules('comEmployernum', 'Çalışan Sayısı', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      $this->form_validation->set_rules('input_comsector', 'Firma Sektörü', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      $this->form_validation->set_rules('input_comnumber', 'Telefon Numarası', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      $this->form_validation->set_rules('input_comwebsite', 'Web Sitesi', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      $this->form_validation->set_rules('input_comservice', 'Hizmetler', 'trim|required|min_lenght[2]|max_lenght[14]|xss_clean');
      if($this->form_validation->run() == FALSE) {
          if($this->session->userdata('logged_in')){
             error_reporting(0);
             $session_data = $this->session->userdata('logged_in');
             $data1['email'] = $session_data['email'];

                 $this->load->view('navbarview', $data1);
             $this->load->view('addProfileInf',$data1);
         }else{
             redirect('home', 'refresh');
         }
      }
      else{
    //$id = $_GET['ID'];
         $this->load->model('CustomerModel');


     $result = $this->CustomerModel->addProfileInf();
     if($result) {

         if($this->session->userdata('logged_in')){
             error_reporting(0);
             $session_data = $this->session->userdata('logged_in');
             $data1['email'] = $session_data['email'];
             $this->load->view('Loginview',array('email' => $result));
            echo "<div class='alert alert-success'>
      <a href='MusteriEkle.php' type='button' class='close' data-dismiss='alert'>×</a>
      <strong>Well done!</strong>Your information was successfully saved ".$result."!</div>";
                 $this->load->view('navbarview', $data1);
             $this->load->view('LoginView');
         }else{
             redirect('home', 'refresh');
         }  }     } }...

这里是模型:CustomerModel.php

...
public function addProfileInf () {
    $this->load->database();
$data = array (  
     $email = $this->input->post('input_email'),
      $birthday = $this->input->post('input_birthday'),
      $cinsiyet =  $this->input->post('cinsiyet[]'),
      $city = $this->input->post('select_city'),
      $phone = $this->input->post('input_phone'),
      $comSname = $this->input->post('input_comSname'),
      $comname = $this->input->post('input_comname'),
      $comcity = $this->input->post('select_comcity'),
      $comemail = $this->input->post('input_comemail'),
      $comnum = $this->input->post('comEmployernum'),
      $sector = $this->input->post('input_comsector'),
      $comnumber = $this->input->post('input_comnumber'),
      $website = $this->input->post('input_comwebsite'),
      $service = $this->input->post('input_comservice'));
$sql = "INSERT INTO data (city, birthdate) VALUES
          ('".$city."',
           '".$birthday."') INTO genders (cus_gender) VALUES ('".$cinsiyet."') INTO contacts (phone) VALUES ('".$phone."') INTO companies (comSname, comname) VALUES ('".$comSname."', '".$comname."') INTO com_contacts (comcity, comemail, comnumber, comwebsite) VALUES ('".$comcity."', '".$comemail."', '".$comnumber."', '".$website."') INTO com_data (comsector, comservice, comEmployernum) VALUES('".$sector."', '".$service."', '".$comnum."')";
 $result = $this->db->query($sql);
 if($this->db->affected_rows()=== 1) {
          return $email;
      }
      else {
          echo "Problem inserting user into database";
          return false;
      }
}...

这里几乎是视图:addProfileInf.php

     ...
     <?php echo validation_errors();?>
                       <?php form_open('customers/editprofile');?>
.
.
.
<?php form_close();?>
...

这段代码有什么问题?有任何错误信息。我不能发布任何我认为的数据。因为当我尝试在 addProfileInf.php 中点击提交时,什么也没发生。

【问题讨论】:

  • 不可能,你想这样插入的原因是什么??

标签: php mysql sql codeigniter


【解决方案1】:

所以你想用一个 sql 将值插入到多个表中?据我所知,你不能这样做......但你可以使用事务。

希望对您有所帮助:MySQL Insert into multiple tables? (Database normalization?)

【讨论】:

  • 当我想用 print_r($sql) 查看我的 sql 语句时,我无法发布任何数据。我如何发布我的数据?这有什么问题?
  • 您的 sql 语法不正确。正如我所说,您不能通过一个 sql 查询将值插入到多个表中。为什么不使用多个 sql 查询?
  • 好吧,我明白了,我更改了我的 sql 代码。现在我正在使用多个 sql 查询。但是我不能发布我的数据。当我点击保存按钮时,什么也没有发生。你觉得为什么?
  • 您使用 PhpMyAdmin 吗?如果使用,请在 Phpmyadmin 中执行那些 sql 查询...看看是否有错误...如果没有,可能是您的 php 语法错误跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-22
相关资源
最近更新 更多