3


1

Codeigniterでの複数のクエリ

_ 重複の可能性: + codeigniterのMYSQL複数挿入 _

PHPのcodeignitorフレームワークを使用して複数の挿入クエリを同時に実行したいと思います。複数の挿入クエリを作成せずにこれを行う簡単な方法があります。既に$ this→ db→ query( 'INSERT INTO Students(first_name、last_name )VALUES( 'teejay'、 'obazee') '(' maev '、' shadowsong ')'( 'jaina'、 'proudmore') '、FALSE)。このような方法はあります。私を助けてください。

3 Answer


9


codeigniterネイティブ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');


3


CodeIgniterで複数のクエリを送信することにも問題がありました。

特定の状況では、1つのINSERTクエリで複数の行を送信できますが、他の多くの状況では、異なるコマンド(たとえば、 `LOCK TABLE …​ SELECT …​ インサート…​ 更新…​ テーブルのロック解除 `)

codeigniterのその時点で、以下を使用する必要があります。

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

私も答えを知りませんでした、答えはもともとhttps://stackoverflow.com/questions/8156828/codeigniter-howでKumar(https://stackoverflow.com/users/523794/kumar)によってコメントとして投稿されました-to-run-multiple-batch-queries [Codeigniter - 複数/バッチクエリの実行方法]

注:* / application / config / database.php でデータベースドライバーを mysqli *に設定する必要があります

それが誰かに役立つことを願っています。


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/