バインド変数の恩恵を受ける可能性のある単純な SQL クエリがあるため、次のように記述しました。
$stmt = $this->db->prepare("SELECT * FROM activities WHERE user_id=':user_id' AND date(start_time)=date(':on_specific_day')");
$stmt->bindParam(':user_id',$where['user_id']);
$stmt->bindParam(':on_specific_day',$where['on_specific_day']);
ご覧のとおりwhere
、where 条件を格納するために使用される という連想配列があります。このステートメントを実行すると、エラーは返されませんが、行数はゼロです。代わりに、バインド変数を使用するという私の夢を捨てて、これを行うと:
$stmt = $this->db->prepare("SELECT * FROM activities WHERE user_id='{$where['user_id']}' AND date(start_time)=date('{$where['on_specific_day']}')");
クエリは問題なく実行され、テスト ケースで 2 つの結果が返されます。狂気に陥るのを誰か助けてくれませんか。:^)