我试图查看MySQL数据库中 2015-6-11 21:28:02 形式的字段(end_date
)是否大于当前时间。从本质上讲,是未来的领域。
这是我的PHP代码:
$current_time = time();
$sql = "SELECT member_id, course_id, FROM ".TABLE_PREFIX."vbc_status WHERE end_date < NOW()";
$result = mysql_query($sql, $db);
while ($row = mysql_fetch_assoc($result)) {
$echo $row['member_id'];
}
我一直收到错误:
警告:mysql_fetch_assoc():提供的参数不是第373行/path/to/script.php中的有效MySQL结果资源。
第373行是while ($row = mysql_fetch_assoc($result)) {
部分。
有关如何解决此问题的任何想法?
答案 0 :(得分:3)
为什么不跳过所有这些,只是这样做:
WHERE end_date < NOW()
使用UNIXTIME
进行转换对您的数据库非常侮辱,它需要对表中的每一行进行评估,并且不能使用索引。如果已建立索引,日期字段本身将非常快速地进行评估。
答案 1 :(得分:0)
您还可以将变量格式设置为数据库中使用的相同格式。
define('DATETIME_SQL', 'Y-m-d H:i:s');
$current_time = date(DATETIME_SQL);
$sql = "SELECT member_id, course_id, FROM ".TABLE_PREFIX."vbc_status WHERE end_date < $current_time";
答案 2 :(得分:0)
发现它!!!
在$sql = "SELECT member_id, course_id, FROM ".TABLE_PREFIX."vbc_status WHERE end_date < NOW()";
中,,
之后有一个不必要的course_id
。
愚蠢的语法.... :)