以下のコードを使用すると、指定された日付が MySQL の「日付」列に存在するかどうかを確認できません。
$data = array(1367971200);
$s=$dbh->prepare("
SELECT DISTINCT
`date`
FROM
`report_coa_bal_hist`
WHERE
UNIX_TIMESTAMP(`date`) = ?
");
if ($s->execute($data)) {
if ($s['date'] == null) {
return false;
}
return true;
}
phpMyAdmin に「2013-05-08」という日付が表示されているにもかかわらず、false が返されます。
テーブル自体には、その日付の 70 以上のエントリが含まれています。含まれている場合は常にそうしますが、この段階で存在するかどうかを知りたいだけです。
日付フィールドは MySQL の「日付」タイプです。クエリの PDO 呼び出しの構造化にバグがあると思われます。
アップデート
$r['date']
`$s['date'] に更新されました。その構造にはまだ問題があると思いますが、おそらくクエリを修正して、これに焦点を当てる前に結果が得られるようにする必要があります。
また、データベースに対して直接クエリを実行しようとしたところ、ターゲットの日付が存在することを確認できたにもかかわらず、空の結果セットが得られました。まだ当惑!