आपके पास कम से कम ये दो विकल्प हैं:
$rows = [(1,2,3), (4,5,6), (7,8,9) ... ];
$sql = "insert into `table_name` (col1, col2, col3) values (?,?,?)";
$stmt = $db->prepare($sql);
foreach($rows as $row)
{
$stmt->execute($row);
}
OR:
$rows = [(1,2,3), (4,5,6), (7,8,9) ... ];
$sql = "insert into `table_name` (col1, col2, col3) values ";
$paramArray = array();
$sqlArray = array();
foreach($rows as $row)
{
$sqlArray[] = '(' . implode(',', array_fill(0, count($row), '?')) . ')';
foreach($row as $element)
{
$paramArray[] = $element;
}
}
// $sqlArray will look like: ["(?,?,?)", "(?,?,?)", ... ]
// Your $paramArray will basically be a flattened version of $rows.
$sql .= implode(',', $sqlArray);
$stmt = $db->prepare($sql);
$stmt->execute($paramArray);
जैसा कि आप देख सकते हैं कि पहले संस्करण में बहुत सरल कोड है; हालांकि दूसरा संस्करण बैच डालने को निष्पादित करता है। बैच इंसर्ट तेज होना चाहिए, लेकिन मैं @BillKarwin . से सहमत हूं कि अधिकांश कार्यान्वयनों में प्रदर्शन अंतर पर ध्यान नहीं दिया जाएगा।