私は一日中答えを探し、自分の考えもすべて試しました。私がやっていることは一見簡単そうに見えますが、私にとってはとても難しいことです。追加の Perl モジュールをインストールせずにこれを行う必要があります。
2 つの日付の間に入力された名前のリストを選択しようとしています。これらの例は明らかに厳密でも安全でもないことはわかっていますが、理解しようとしているだけです。必要な結果を得る手段を見つけたら、後ですべてを修正します。
$to および $from の受信データの例:
$to= '2013-03-01 00:00:01';
$from= '2013-03-01 23:23:59';
データベースのentered
列もその形式です。
私は試した:
$names = DBI->connect("$sdb","$user","$password");
$getnames = $names->prepare(qq{SELECT DISTINCT `name`
FROM `users`
WHERE `entered`
BETWEEN UNIX_TIMESTAMP($from)
AND UNIX_TIMESTAMP($to)
AND `active` = ?
AND `confirmed` = ?
ORDER BY `entered` DESC});
$getnames->execute($active,$confirmed);
そして私は試しました:
$names = DBI->connect("$sdb","$user","$password");
$getnames = $names->prepare(qq{SELECT DISTINCT `name`
FROM `users`
WHERE `entered` BETWEEN ?
AND ?
AND `active` = ?
AND `confirmed` = ?
ORDER BY `entered` DESC});
$getnames->execute($from,$to,$active,$confirmed);
上記の2つの多くのバリエーションも試しましたが、取得し続けます:
Can't call method "prepare" on an undefined value at users-by-date.pl line 120 even when I hard code the variables.
誰かがこれを行う方法を教えてもらえますか? 私のクエリは phpmyadmin で正常に実行されますが、Perl を使用して結果をページに出力する必要があります。日付形式に関係があると思います。いいえ、データベースの日付形式を変更できません。
本当にありがとう。