Codeigniter Вставка многомерного массива в виде строк в MySQL - PullRequest
4 голосов
/ 12 ноября 2010

Пожалуйста, обратитесь к этому вопросу, который я задал
Codeigniter Вставить несколько строк в SQL

Чтобы переформулировать

<tr>
<td><input type="text" name="user[0][name]" value=""></td>
<td><input type="text" name="user[0][address]" value=""><br></td>
<td><input type="text" name="user[0][age]" value=""></td>
<td><input type="text" name="user[0][email]" value=""></td>
</tr>
<tr>
<td><input type="text" name="user[1][name]" value=""></td>
<td><input type="text" name="user[1][address]" value=""><br></td>
<td><input type="text" name="user[1][age]" value=""></td>
<td><input type="text" name="user[1][email]" value=""></td>
</tr>
..........

Может быть вставлен в MySQL как этот

 foreach($_POST['user'] as $user)
{
    $this->db->insert('mytable', $user);
}

Это приводит к нескольким запросам MySQL.Можно ли оптимизировать его дальше, чтобы вставка происходила в одном запросе

Как-то так

вставка нескольких строк через массив php в mysql

но используя преимущества более простого синтаксиса codeigniters.Спасибо

Ответы [ 4 ]

4 голосов
/ 04 января 2011
$this->db->insert_batch('table_name', $data);

Подробнее см. В руководстве пользователя устройства зажигания кода .

0 голосов
/ 13 ноября 2010

Codeigniter 2 (предстоящий выпуск) будет иметь метод пакетной вставки.

0 голосов
/ 02 января 2011

В CI 2 есть функция активной записи set_insert_batch().

0 голосов
/ 12 ноября 2010

CodeIgniter, по-видимому, не имеет метода mutli-insert.Более того, даже если это так, вы можете столкнуться с такими проблемами, как:

  • Удар максимальной длины запроса
  • Необходимость блокировки таблицы до завершения вставок
  • Работать с ошибками может быть немного сложнее
  • ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...