Insertar varias filas con declaraciones preparadas PDO
Insertar varias filas en una base de datos utilizando una única declaración preparada no solo es posible sino que también se recomienda para su eficiencia y seguridad.
Enfoque con una única consulta de inserción
El primer método implica el uso de una consulta INSERT única con múltiples valores:
INSERT INTO Table (col1, col2, col3) VALUES ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi') -- and so on...
Para ejecutar esta consulta usando PDO, puede seguir estos pasos:
$query = "INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?) "; $params = array('abc', 'def', 'ghi', 'abc', 'def', 'ghi', 'abc', 'def', 'ghi'); $stmt = DB::getInstance()->prepare($query); $stmt->execute($params);
Enfoque con consultas de inserción individuales
Si el número de filas a insertar es demasiado grande, es posible que deba ejecute consultas de inserción individuales:
$query = "INSERT INTO Table (col1, col2, col3) VALUES (".implode(',', $args).")"; $stmt = $pdo->prepare($query); foreach ($rows as $row) { $stmt->execute($row); }
Este enfoque garantiza que cada fila se inserte por separado, minimizando el riesgo de problemas durante la inserción.
Conclusión
Si utiliza una única inserción Para consultas con múltiples valores o consultas de inserción individuales, las declaraciones preparadas por PDO proporcionan métodos eficientes y seguros para insertar múltiples filas en una base de datos. La elección del enfoque correcto depende de los requisitos específicos de la aplicación y la base de datos.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3