PDOについて、

$db=new PDO($hoge1.":host=".$hoge2.";dbname=".$hoge3,$hoge4,$hoge5);
$stmt=$db->query("SELECT * FROM hogetable");

//$stmt=NULL;

while($row=$stmt->fetch(PDO::FETCH_ASSOC){
$stmt2=$db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
$stmt2->execute(array(row["hoge"]));
}

のようなコードを書きたいのですが、
$stmt=NULL;を入れないと$stmt2->executeが実行されないのは何故なんでしょうか。