Каков наилучший способ вставить несколько строк в базу данных mysql с помощью php?

PHP-код ниже получает результаты из формы и вставляет их в таблицу.

Я должен использовать эту структуру таблицы, где каждая строка соответствует другому значению из формы, например First Name.

Я написал код ниже, но это громоздко. Можете ли вы помочь мне лучше? Спасибо, кучи!

$lists = $_POST['form']['lists'][0]; $first_name = $_POST['form']['first_name']; $last_name = $_POST['form']['last_name']; $idu = $db->insertid(); $db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('" . $db->getEscaped($lists) . "', 'First Name' , '" . $db->getEscaped($first_name) . "', '" . $db->getEscaped($idu) . "')"); $db->query(); $db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('" . $db->getEscaped($lists) . "', 'Last Name' , '" . $db->getEscaped($last_name) . "', '" . $db->getEscaped($idu) . "')"); $db->query(); 

Вы можете выполнить объемную вставку:

 INSERT INTO table (field1, field2) VALUES ('val1', 'val2'), ('val3', 'val4'), ... 

В вашем случае это что-то вроде:

 $db->setQuery("INSERT INTO #__rsmail_subscriber_details (`IdList`, `FieldName`, `FieldValue`, `IdSubscriber`) VALUES ('".$db->getEscaped($lists)."', 'First Name' , '".$db->getEscaped($first_name)."', '".$db->getEscaped($idu)."'), ('".$db->getEscaped($lists)."', 'Last Name' , '".$db->getEscaped($last_name)."', '".$db->getEscaped($idu)."')"); 

Чтобы ответить на ваш вопрос SQL:

 INSERT INTO `table` (foo, bar) VALUES (1, 2), (3, 4), (5, 6), (7, 8) 

Что касается вашего PHP-кода, сжечь его и начать все заново. Это воняет проблемами безопасности и плохими практиками.