一切似乎都很好,只记得你提供的信息。我们将不得不看到整个代码来找到错误。也许这是一个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代码(using语句来查询数据库):
<?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