あなたが与えた情報だけを念頭に置いて、すべてうまくいくようです。
エラーを見つけるにはコード全体を確認する必要があります。多分、それはMySQLのフィールド型の問題です、あるいは多分あなたがMySQLに問い合わせを送る方法です。
ここでは、最小限のバージョンのテーブルを使用した実例があります。私はそれが助けて欲しい!
冷蔵庫テーブルのフィールド:
mysql> desc fridge;
+----------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------+----------------+
| id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| food | varchar(20) | YES | | NULL | |
| date_purchased | date | YES | | NULL | |
+----------------+------------------+------+-----+---------+----------------+
(date_purchased
フィールドにdate
タイプに注意)。
編集:この例あなたは、そのフィールドのdate
またはdatetime
のいずれかのタイプを使用する場合に動作します。
冷蔵庫テーブル内容:(データベースを照会するステートメントを使用して)
mysql> select * from fridge;
+----+-----------+----------------+
| id | food | date_purchased |
+----+-----------+----------------+
| 1 | hamburger | 2016-04-28 |
| 2 | pizza | 2016-04-12 |
| 3 | salad | 2016-05-10 | <-- future date
| 4 | fruit | 2016-05-04 | <-- future date
+----+-----------+----------------+
PHPコード:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// prepare and bind
$stmt = $conn->prepare("select food from fridge where date_purchased < ?");
$stmt->bind_param("s", $date);
// set parameters and execute
$date = date("Y-m-d"); // NOTE: $date stores the current date
echo "<p>Food with date < $date</p>";
$stmt->execute();
// bind variables to prepared statement
$stmt->bind_result($food);
// fetch values (here you can do whatever you want with results)
while ($stmt->fetch()) {
echo "<p>$food</p>";
}
$stmt->close();
$conn->close();
結果(私たちは今、健康食品を望んでいません...):日付< 2016年5月1日
ハンバーガー
ピザ
sqlクエリとPHPの日付書式設定コードを追加してください。 – nanocv
@nanocv上記を参照してください。 – Brinley