Команды sql работают в phpmyadmin, но не будут работать в коде. Я не получаю сообщений об ошибках, и это, кажется, успешно, но ничего не идет в базу данных. Я пробовал различные методы, но просто не могу найти проблему. Действительно в растерянности. Может быть, транзакция - не лучший способ вставить данные в несколько таблиц?
$db->beginTransaction(); // ***********************
$stmt = $db->prepare('INSERT INTO guests
VALUES (null, :sFirstName, :sLastName, :sEmail, :sPhone, :sAddressLine1, :sCity, :sCountry);
SELECT * FROM guests
INNER JOIN countries ON guests.country_fk = countries.country_id;');
$stmt->bindValue(':sFirstName', $sFirstName);
$stmt->bindValue(':sLastName', $sLastName);
$stmt->bindValue(':sEmail', $sEmail);
$stmt->bindValue(':sPhone', $sPhone);
$stmt->bindValue(':sAddressLine1', $sAddressLine1);
$stmt->bindValue(':sCity', $sCity);
$stmt->bindValue(':sCountry', $sCountry);
if( !$stmt->execute() ){
echo 'Cannot update the user '.__LINE__;
$db->rollBack();
exit;
}
$stmt = $db->prepare('INSERT INTO reservations VALUES(null, :sRoomId, :sCheckInDate,
:sCheckOutDate, :nightsRequested, :iNumberOfGuests);
SELECT *
FROM reservations
INNER JOIN rooms ON reservations.room_fk = rooms.room_id;');
$stmt->bindValue(':sRoomId', $sRoomId);
$stmt->bindValue(':sCheckInDate', $sCheckInDate);
$stmt->bindValue(':sCheckOutDate', $sCheckOutDate);
$stmt->bindValue(':nightsRequested', $nightsRequested);
$stmt->bindValue(':iNumberOfGuests', $sNumberOfGuests);
if( !$stmt->execute() ){
echo 'Cannot insert a user '.__LINE__;
$db->rollBack();
exit;
}
// SUCCESS
echo 'DONE';
$db->commit(); // ***********************