Codeigniter中的多个查询

时间:2010-04-09 10:24:44

标签: codeigniter

  

可能重复:
  MYSQL multiple insert in codeigniter

我想在PHP中使用codeignitor框架同时执行多个插入查询。有一些简单的方法可以在不编写多个插入查询的情况下执行此操作。已经尝试过像 $ this-> db-> query('INSERT INTO students(first_name,last_name)VALUES                      ('teejay','obazee')'                      ('maev','shadowsong')'                      ('jaina','骄傲')','FALSE) 有这样的方法。哪个不行。如果有人知道的话,请帮助我。

3 个答案:

答案 0 :(得分:9)

您可以使用codeigniter native activerecord

$data = array(
   array(
      'first_name' => 'teejay', 'last_name' => 'obazee'
   ),
   array(
      'first_name' => 'maev', 'last_name' => 'shadowsong'
   ),

   array(
      'first_name' => 'jaina', 'last_name' => 'proudmore'
   )
);

$this->db->insert_batch('students', $data);

它会产生查询

INSERT INTO students (first_name,last_name) VALUES  ('teejay', 'obazee'),('maev', 'shadowsong'),('jaina', 'proudmore');

答案 1 :(得分:3)

我在CodeIgniter中发送多个查询也遇到了问题。

在您的特定情况下,您可以在一个INSERT查询中发送多行,但在许多其他情况下,这是不可能的,因为您有不同的命令(例如LOCK TABLE... SELECT... INSERT... UPDATE... UNLOCK TABLES

在codeigniter中,您应该使用:

mysqli_multi_query($this->db->conn_id, $sql);

我甚至不知道答案,答案最初是由Kumar(https://stackoverflow.com/users/523794/kumar)在Codeigniter - how to run multiple/batch queries?发表的评论

注意:您必须在 /application/config/database.php

中将数据库驱动程序设置为 mysqli

希望它有所帮助。

答案 2 :(得分:2)

不幸的是,您需要执行以下操作:

$this->db->query("INSERT INTO `students` (`first_name`,`last_name`) VALUES  ('teejay', 'obazee'),('maev', 'shadowsong'),('jaina', 'proudmore')");

或使用其他人的类来构建查询: http://codefury.net/2009/12/insert-multiple-rows-into-a-database-with-codeigniter/