いいえ、できません。
ただし、2 つの準備済みステートメントを用意し、ロジックを使用してそれらを選択することができます。
$queryWithUser = $pdo -> prepare ('SELECT foo, bar FROM mytable WHERE foo=:foo AND userid=:userid;');
$queryWithoutUser = $pdo -> prepare ('SELECT foo, bar FROM mytable WHERE foo=:foo;');
$result = $doQueryWithUser?
$queryWithUser -> execute (array ('foo' => 123, 'userid' => 456)):
$queryWithoutUser -> execute (array ('userid' => 456));
または、特定の時間に必要な準備済みステートメントをオンデマンドで生成できます。
$queryString = 'SELECT foo, bar FROM mytable WHERE foo=:foo';
if ($doQueryWithUser) {
$queryString .= ' AND userid=:userid';
}
$query = $pdo -> prepare ($queryString . ';');