Как добавить несколько строк в datamapper, используя один и тот же объект

Я знаю, что с помощью $ dataMapperObject-> query (‘INSERT INTO table (a, b) VALUES (1,2), (2,3), (3,4);’); сохранит несколько записей, так как это просто оператор SQL INSERT.

Но как хранить несколько значений в одном объекте datamapper?

Пример:

$addPatient= new Patient_table();
$addPatient->trans_begin();
foreach($_POST as $key=>$val){
$addPatient->patient_id=$this->patient-id;
$addPatient->question=$key;
$addPatient->answer=$val;
$addPatient->save();
}

Здесь, в примере выше, я хочу сохранить каждый вопрос и ответить успешно. Если какой-либо из них отсутствует, я хочу откатить всю транзакцию.

Как сохранить ответ на все вопросы в одном вызове объекта?

0

Решение

я не очень знаком с использованием datamapper, но я думаю, что должно работать следующее:

$addPatient= new Patient_table();
$addPatient->trans_begin();
foreach($_POST as $key=>$val){
$addPatient->patient_id=$this->patient-id;
$addPatient->question=$key;
$addPatient->answer=$val;
$addPatient->save();
}
if ($addPatient->trans_status() === FALSE)
{
$addPatient->trans_rollback();
}
else
{
$addPatient->trans_commit();
}

Я думаю, что ваши поля базы данных, возможно, должны быть установлены так, чтобы они не могли содержать ноль, вот еще один пост на ту же тему.
Можно ли откатить транзакцию после ее фиксации с помощью Datamapper / Codeigniter?

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector