繁体   English   中英

PHP语法帮​​助

[英]Php Syntax help for a noobie

我正在开发一个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;

?>

这里有一些想法:

除非需要,否则您不应使用“ root”帐户(或任何具有管理权限的帐户)连接到MySQL-在这里,它不是


另外:您可能不应该使用extract:它会突然创建变量-如果有一天在表中添加一列,则意味着您的PHP脚本中有一个新变量,这可能与现有变量冲突(这里的风险不大,因为您没有在执行“ select *”;而是一天或另一天,...)

  • 而是使用$row['CheckDate']类的语法
  • 使用extractCheckDate仍然是一个变量,这意味着您必须在其$CheckDate加上$: $CheckDate

有关更多信息,请参见extract手册页:在示例中,每个变量前面都有$-实际上,这就是PHP中变量的语法;-)


第三个:似乎在脚本末尾缺少一些“}”,以标记while循环的末尾。


并且,还有另外一个路要走:开发时,应该使用尽可能最高的错误报告级别; 那就表明您在这里没有$的“ CheckDate”是错误的。

有关更多信息,您可以查看:

在脚本顶部使用类似的内容将有所帮助:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

或者,在php.ini文件中:

error_reporting = E_ALL
display_errors = On

(您必须找到并替换现有值)


希望这会有所帮助...并玩得开心!

> $validfromdate = CheckDate;

也许你是说

$validfromdate = $row["CheckDate"];

尝试:

$ validfromdate = $ row ['CheckDate'];

$validfromdate = CheckDate;

应该

$validfromdate = $CheckDate;

您还缺少循环的括号。

您最好以数组形式访问$ row,而不是对其调用extract。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM