【问题标题】:Insert data with CodeIgniter Active Records使用 CodeIgniter Active Records 插入数据
【发布时间】:2011-07-08 09:15:39
【问题描述】:

我的问题是关于使用 CodeIgniter Active 记录插入数据。指南上有一个使用数组插入数据的示例:

$data = array(
   'title' => 'My title' ,
   'name' => 'My Name' ,
   'date' => 'My date'
);

$this->db->insert('mytable', $data); 

我想知道是否有其他方法可以插入活动记录数据,例如在类似的语法中:

    $this -> db -> select (*);
    $this -> db -> from ('users');
    $this -> db -> where('id', $id);
    $this -> db -> limit(1);

    $query = $this->db->get();

谢谢。

【问题讨论】:

    标签: php mysql codeigniter insert


    【解决方案1】:

    您可以使用set() 方法。

    根据 CI 文档,您可以使用以下语法:

    $this->db->set('name', $name);
    $this->db->insert('mytable'); 
    

    这将产生以下查询:

    INSERT INTO mytable (name) VALUES ('{$name}')
    

    希望它是您正在寻找的。​​p>

    【讨论】:

    【解决方案2】:
    **its very simple just follow the following steps**<br>
    **first prepare a dabase in mysql**<br>
    -- phpMyAdmin SQL Dump
    -- version 3.5.2.2
    -- http://www.phpmyadmin.net
    --
    -- Host: 127.0.0.1
    -- Generation Time: Jul 02, 2013 at 03:48 AM
    -- Server version: 5.5.27
    -- PHP Version: 5.4.7
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
    
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    
    --
    -- Database: `persons`
    --
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `person`
    CREATE TABLE IF NOT EXISTS `person` (
      `id` int(9) NOT NULL AUTO_INCREMENT,
      `person_name` varchar(50) NOT NULL,
      `person_address` varchar(50) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1728 ;
    
    --
    -- Dumping data for table `person`
    --
    
    INSERT INTO `person` (`id`, `person_name`, `person_address`) VALUES
    (1726, 'soma', 'goma'),
    (1727, 'roma', 'toma');
    
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
    <br>
    
    
    **Open Codeigniter and make the follwoing changes in the following files**<br>
    
    **make changes in autoload.php**<br>
    
    **it is located  at**<br>
    
    **C:\xampp\htdocs\CI_person\application\config**<br>
    
      from 
    
    **$autoload['libraries'] = array('');** to
    **$autoload['libraries'] = array('database');**$config['base_url']<br>
    
    make changes in config.php 
    
    
    **it is located  at**<br>
    
    **C:\xampp\htdocs\CI_person\application\config**<br>
    
    
    $config['base_url'] = ''; to
    
    $config['base_url'] = 'http://localhost/';
    
    make changes in database.php 
    
    
    **it is located  at**<br>
    
    **C:\xampp\htdocs\CI_person\application\config**<br>
    
    
    $db['default']['hostname'] = '';<br>
    $db['default']['username'] = '';<br>
    $db['default']['password'] = '';<br>
    $db['default']['database'] = '';<br>
    $db['default']['dbdriver'] = 'mysql';<br>
    
    to<br>
    $db['default']['hostname'] = 'localhost';<br>
    $db['default']['username'] = 'root';<br>
    $db['default']['password'] = '';<br>
    $db['default']['database'] = 'persons';<br>
    $db['default']['dbdriver'] = 'mysql';<br>
    
    
    now open the views folder located at<br>
    
    **C:\xampp\htdocs\CI_person\application**<br>
    **Create a view persons.php in C:\xampp\htdocs\CI_person\application\views**
    
    
    <html>
    <head>
    </head>
    <body>
    <script language="javascript">
    function clicked()
    {
    alert("You clicked");
    document.getElementById('check').value='I';
    
    }
    </script>
    
    <form id="entry" name="entry"  method="post" >
    <input type="hidden" name="check" id="check" value="">
    Person Name 
      <input type="text" name="person_name" id="person_name" />
      <br />
      Person Address
      <input type="text" name="person_address" id="person_address" />
      <input type="submit" name="button" id="button" value="Submit" onClick="clicked()">
    <table  cellpadding="2px" width="600px"  border="2">
            <?php
                foreach ($persons as $person){
                    $id = $person['id'];
                    $name = $person['person_name'];
                    $address = $person['person_address'];
    
            ?>
            <tr>
    
                <td><?php echo $name; ?></td>
                <td><?php echo $address; ?><br /> </td>
    
    
    
            </tr>
    
            <?php } ?>
        </table>
    </form>
    </body>
        </html>
    
    **create controller named persons.php in Controller folder**<br>
    
    
    
    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');
    
    
    class Persons extends CI_Controller {
    
        public function __construct()
        {
            parent::__construct();
            $this->load->model('Person_model');
        }
    
        public function index()
        {       
    
             $person_name = $this->input->post('person_name');
             $person_address = $this->input->post('person_address');
             $check= $this->input->post('check');
    
        if  ($check=="") 
        {
            $this->data['persons'] = $this->Person_model->get_all();
            $this->load->view('persons', $this->data);
        }
        if  ($check=="I") 
        {
    
             /*$this->load->model('Person_model');
             $this->Person_model->insert_to_db($this->input->post('person_name'),$this->input->post('person_address'));
             */
    
             $this->Person_model->person_name = $person_name;
             $this->Person_model->person_address =$person_address;
             $this->Person_model->insert_into_db();
             $this->data['persons'] = $this->Person_model->get_all();
             $this->load->view('persons', $this->data);
    
    
        }
    
    
        }
    
    
    
    
    
    
    
    }
    
    
    **now create model as defined below in Models folder**<br>
    <?php
    class Person_model extends CI_Model
    {
        public $person_name;
        public $person_address;
        public function __construct()
        {
    
        }
    
        public function get_all()
        {
        $this->db->select('id,person_name,person_address');
        $query= $this->db->get('person');
        return $query->result_array();  
        }
    
        function insert_into_db()
        {
    
          $f1 = $this->person_name;
          $f2 = $this->person_address;
    
         $this->db->query("INSERT INTO person(person_name,person_address) VALUES('$f1','$f2')"); 
    
        }
    
    
    
    
    }
    
    
    
    
    ?>
    
    **Save all and run**
    

    【讨论】:

    • 我会发现这是一个相当麻烦的答案。将来,我会建议更好的格式:文本说明,每个说明都有单独的代码块。更清晰,在必要时更容易复制/粘贴代码。
    【解决方案3】:

    在 Codeigniter 中插入数据的其他方式

        $query = $this->db->query('YOUR SQL QUERY'); 
    

       $this->db->set('name', $name);
       $this->db->insert('mytable');  // Produces: INSERT INTO mytable (`name`) VALUES ('{$name}')
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多