哎呀。我不知道为什么这不起作用:
我有一个只有2行的数据库。其中一个db列存储时间+ 1小时。我想查询数据库,并且对于存储时间早于当前时间的每一行,向我发送一条消息。基本上它只是延迟从存储时起发送消息1小时。
它会发送一封电子邮件。 “存储时间”中的两个值都比当前时间更早(更小)。但只有一条消息消失了。我错过了什么?
$query = "SELECT * FROM db";
$result=@mysql_query($query);
$num=@mysql_numrows($result);
$row=mysql_fetch_array($result);
$i = 0;
$time = time();
while($i < $num)
{
if(($row['storedtime']) <= $time)
{
mail("myemailaccount","Subject","Message here, etc.", $headers);
}
$i++;
}
答案 0 :(得分:2)
我建议在while循环中使用mysql_fetch_array($result)
然后,它应该是这样的:
$query = "SELECT * FROM db";
$result = mysql_query($query);
$time = time();
while($row = mysql_fetch_array($result))
{
if(($row['storedtime']) <= $time)
{
mail("myemailaccount","Subject","Message here, etc.", $headers);
}
}
希望它有所帮助。
您可以从文档站点查看以下示例。此外,请务必阅读建议的替代方案( MySQLi 或 PDO_MySQL )部分。 http://php.net/manual/es/function.mysql-fetch-array.php