Я использую второй способ, т. Е.
$query = 'insert into user (username, password) values (:username, :password)';
$param = array('username' => $username, 'password' => $password);
$ param для этого примера иногда можно сделать как compact('username', 'password')
- мне это удобно.