У меня есть таблица с именем propAmenities
, которая содержит два столбца amenity_id
и property_id
, в основном таблица содержит внешние ключи.
теперь у меня есть две вставки данных в эту таблицу, и при вставке данных столбец property_id
будет иметь одинаковое значение для всех строк, которые должны быть вставлены, в то время как значение amentiy_id
будет меняться, например, теперь значения могут выглядеть
INSERT INTO propAmenities(amenity_id, property_id) VALUES(1,1);
INSERT INTO propAmenities(amenity_id, property_id) VALUES(2,1);
INSERT INTO propAmenities(amenity_id, property_id) VALUES(3,1);
INSERT INTO propAmenities(amenity_id, property_id) VALUES(4,1);
INSERT INTO propAmenities(amenity_id, property_id) VALUES(5,1);
и текущий код для вставки данных, которые я использую:
public function savePropAmenities($amenityIds = array()) {
if($this->validateRequired(array('propertyId'))) {
foreach($amenityIds as $amenityId) {
$sth = $this->dbh->prepare('INSERT INTO
propAmenities
(amenity_id, property_id)
VALUES
(:amenityId, :propertyId)');
$sth->bindParam(':amenityId', $amenityId);
$sth->bindParam(':propertyId', $this->data['propertyId']);
$sth->execute();
}
}
}
приведенный выше код будет запускать цикл и будет часто посещать базу данных для вставки записей. Могу ли я в любом случае сократить поездку и свести ее к минимуму?