Я на дев-машине обычно включаю логгинг всех запросов средствами SQL-сервера, и смотрю что там происходит.
Вот пример (MySQL):
$st = $pdo->prepare('SELECT * FROM user WHERE id=:id');
$id = 2;
$st->bindParam(':id', $id, PDO::PARAM_INT);
$st->execute();
$r = $st->fetchAll();
Выдаёт в MySQL-лог строчку
6 Query SELECT * FROM user WHERE id=2
При использовании PostgreSQL выглядит это несколько по-другому:
LOG: duration: 2.669 ms parse pdo_stmt_00000af1: SELECT * FROM "item" LIMIT $1 OFFSET $2
LOG: duration: 0.126 ms bind pdo_stmt_00000af1: SELECT * FROM "item" LIMIT $1 OFFSET $2
DETAIL: parameters: $1 = '20', $2 = '0'
LOG: duration: 0.118 ms execute pdo_stmt_00000af1: SELECT * FROM "item" LIMIT $1 OFFSET $2
DETAIL: parameters: $1 = '20', $2 = '0'
LOG: duration: 0.172 ms statement: DEALLOCATE pdo_stmt_00000af1
При желании можно SQL-лог направить в тот же файл, что и дебаговый PHP-лог, чтобы не переключаться между окнами терминалов с «tail -f», которые следят за логами.