Доброго времени всем!
Столкнулся с проблемой записи данных в БД в своей учебной проге, прошу внимания.
Суть такова, что имеем кусочек программы (телефонная книга). В БД создано две таблицы, contacts и phone_numbers. В метод модели, который отвечает за запись новых номеров в БД поступает массив с телефонными номерами(из контроллера, который обрабатывает данные формы) . Собственно вот код метода:
public static function addPhoneNumbers($data)
{
$db = Db::getConnection();//подключаюсь к БД
$arrIds = $db->query('SELECT id FROM contacts ORDER BY id DESC LIMIT 1');//получаю последний id из таблицы контактов
$arrIds->setFetchMode(PDO::FETCH_ASSOC);
$contact_id = $arrIds->fetch(); //присваиваю это значение переменной
foreach ($data as $key => $number){ //создаю цикл для обработки массива с тел. номерами
$sql = 'INSERT INTO phone_numbers (phone_number, contact_id) '
. 'VALUES (:phone-number, :contact_id)';
$result = $db->prepare($sql);
$result->bindValue(':phone_number', $number, PDO::PARAM_INT);//подставляю значение телефонного ноера
$result->bindValue(':contact_id', $contact_id['id'], PDO::PARAM_INT);//значение раннее полученного id из таблицы контактов
$result->execute();
}
}
Попытался прокомментировать свои действия, но вкратце опишу, что я пытался тут сделать:
Первым дело, после подключения к БД, я получаю последний айди из таблицы контактов, для того, что бы включить его в поле contact_id таблицы phone_numbers (для связи их между собой).
Потом произвожу запись в таблицу phone_numbers в соответствующие поля, при помощи цикла, подставляя значения, которые уже имею. Но запись в таблицу не происходит. Не могу найти причину, прошу помощи. Спасибо!