<?php
$pdo = new pdo('sqlite::memory:', null, null, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$pdo->exec('create table foo(id int primary key, letter text)');
$ids = insert($pdo, 'insert into foo(letter) values(?), (?), (?)', ['a', 'b', 'c']);
var_dump($ids, $pdo->query('select * from foo')->fetchAll(PDO::FETCH_ASSOC));
function insert($pdo, string $sql, array $params = []) : array {
if (stripos($sql, 'INSERT') !== 0) {
throw new InvalidArgumentException('##LG_NOT_AN_INSERT_STATEMENT##');
}
//$pdo = $this->getAdapter()->getConnection();
$stmt = $pdo->prepare($sql);
$stmt->execute($params);
$count = $stmt->rowCount();
$last = $pdo->lastInsertId();
return range($last - $count, $last);
}
preferences:
45.9 ms | 402 KiB | 5 Q