質問: $dbh->prepare("delete from $dbtable where id=\'$delfilid\'"); $delete->execute; $delete->finish; } と記述しているのですが、これは正常に動作します。 何がいけないのかが判らないので詳しい方教えてください。
回答: if文中の > $syoujyou ne "" and $geninn eq "" and $taisyo eq "" のand条件が、テーブル側の > syoujyou text not null, > geninn text not null, > taisyo text not null, の各not null条件と矛盾しているのではないでしょうか? 「$syoujyou ne ""」はいいと思いますが、「$geninn eq ""」と「$taisyo eq ""」がandで結ばれているために両方ともnullじゃないとifの中に入れず、入ったら今度はテーブルのnot null制約ではじかれている状態ではないかと思うのですが。。。 試しに > geninn text not null, > taisyo text not null, のnot nullを外してみられてはいかがでしょうか?