php - affected - codeigniter mysql error
Múltiple inserción MYSQL en codeigniter (3)
Debe tener claro el motivo por el que desea insertar varias filas en una sola declaración. ¿Es por el rendimiento?
Los marcos son para programar la productividad y la comodidad, pero no necesariamente el rendimiento. Estoy de acuerdo con la respuesta dada por @Udi Mosayev: use la API de framework en su uso más simple.
Si está insertando un número pequeño de filas, la diferencia entre insertar una fila por enunciado y varias filas por enunciado es insignificante.
Si tiene una gran cantidad de filas y realmente las necesita para insertar con alto rendimiento, nada supera a LOAD DATA INFILE
. Sus intentos de optimizar el uso de INSERT
están siendo céntimos y extremadamente absurdos. Incluso volcar tu matriz PHP en un archivo tmp y luego cargarlo LOAD DATA
es más rápido que usar INSERT
.
Posible duplicado:
insertar múltiples filas a través de una matriz php en mysql
Conozco la posibilidad de hacer una inserción múltiple en mySQL haciendo algo como esto:
foreach ($array as $manuf) {
$sql[] = ''("''.mysql_real_escape_string($manuf[''name'']).''", "''.$manuf[''lang''].''", "''.$mId.''")'';
}
$this->db->query(''INSERT INTO manufacturers (name, lang ,mid) VALUES '' . implode('','', $sql) );
Me pregunto si hay una mejor manera de hacer esto y tal vez extender la biblioteca DB actual (registro activo) para hacerlo con aún menos código.
Gracias
Por supuesto. Simplemente use $this->db->insert(''dbTableName'', $arrayOfData)
. La matriz de datos es field-> value, y field es el nombre de la columna en su tabla dentro de la base de datos.
puedes leer más sobre esto aquí
Si va a insertar una gran cantidad de filas, debe hacerlo en una sola consulta. No creo que CI lo esté haciendo bien. PD: No te olvides del tamaño de consulta máximo de MySQL.