我正在使用noobie应用程序从数据库中提取一些日期,然后一年后向我发送警报(使用cron)。到目前为止,我有点挣扎,我正在尝试制作一个可以用来构建我的数学的页面。
到目前为止,我已经整天调试并在教程后阅读教程,但仍然出现错误。非常令人沮丧:)
我的代码看起来像这样......
<?php
$con = mysql_connect("localhost","root", "etc");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("db", $con);
$result = mysql_query('SELECT CheckDate FROM Data') or exit(mysql_error());
while ($row = mysql_fetch_array($result))
{
extract($row);
$validfromdate = CheckDate;
$alert=strtotime("+1 year", $validfromdate);
echo $alert;
?>
答案 0 :(得分:5)
以下是一些想法:
您不应该使用“root”帐户(或具有管理权限的任何帐户)连接到MySQL,除非需要它 - 在这里,它不是
另外:你可能不应该使用extract:它会立即创建变量 - 如果有一天你在表中添加一个列,它将意味着你的PHP脚本中的一个新变量,它可能与现有的变量冲突(这里风险不大,因为你没有做“选择*”;但是,有一天或那些,......)
$row['CheckDate']
extract
,CheckDate
是一个变量,这意味着您必须在前面添加$:$CheckDate
有关更多信息,请参阅extract
手册页:在示例中,每个变量前面都有$ - 实际上,这是variables in PHP的语法; - )
第三个:看起来脚本末尾有一些“}”缺失,以标记while循环的结束。
此外,还有一条路:在开发时,您应该使用尽可能高的错误报告级别;这会在没有$的情况下向你显示“CheckDate”错误,在这里。
有关更多信息,您可以查看:
在脚本顶部使用类似的内容会有所帮助:
error_reporting(E_ALL);
ini_set('display_errors', 'On');
或者,在php.ini文件中:
error_reporting = E_ALL
display_errors = On
(您必须找到并替换现有值)
希望这会有所帮助...并且玩得开心!
答案 1 :(得分:1)
> $validfromdate = CheckDate;
也许你的意思是
$validfromdate = $row["CheckDate"];
答案 2 :(得分:0)
尝试:
$ validfromdate = $ row ['CheckDate'];
答案 3 :(得分:0)
$validfromdate = CheckDate;
应该是
$validfromdate = $CheckDate;
你也错过了循环的近距离支撑。
最好将$ row作为数组访问,而不是在其上调用extract。