您可以为占位符指定任何您想要的名称,因此您的 SQL 如下所示:
INSERT INTO propAmenities
(amenity_id, property_id)
VALUES
(:amenity_id1, :property_id1),
(:amenity_id2, :property_id2),
(:amenity_id3, :property_id3)
进而:
$stmt->bindParam(':amenity_id1', 1);
$stmt->bindParam(':property_id1', 1);
$stmt->bindParam(':amenity_id2', 2);
$stmt->bindParam(':property_id2', 1);
$stmt->bindParam(':amenity_id3', 3);
$stmt->bindParam(':property_id3', 1);
或者,当然,构建适当的数组execute
。在这种情况下,未命名的占位符可能更容易使用:
INSERT INTO propAmenities
(amenity_id, property_id)
VALUES
(?, ?),
(?, ?),
(?, ?)
然后你可以循环你的值并调用execute
使用适当的数组:
$stmt->execute(array(1, 1, 2, 1, 3, 1));