-3

我不知道这个功能有什么问题:

function server_grafico_expirar($data) {
    $data = sanitize($data);
    $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'");
    return (mysql_result($query, 0) == 1) ? true : false;
}

如果 date('dmY') 等于 mysql 中的日期,则此函数应该返回 true。

我这样使用:

$data = date('d.m.Y');
if(server_grafico_expirar($data)){
    echo "Today, is the date!";
}

错误是:

Parse error: syntax error, unexpected T_IF in /home/mcser325/public_html/checker.php on line 35
4

2 回答 2

1

首先,您必须确保该settings表确实包含将 data_exp 列设置为今天日期的行,格式为 dmY

mysql_result 从 MySQL 结果集中检索一个单元格的内容。您正在检索的单元格是 data_exp。根据您的问题,我假设 data_exp 是 dmY 格式的日期

话虽如此, mysql_result($query, 0)永远不会等于 1,因为它将返回您选择的日期。您可以通过两种方式解决此问题,您可以检查单元格是否等于 $data 然后返回 true

function server_grafico_expirar($data) {
   $data = sanitize($data);
   $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'");
   return mysql_result($query, 0) == $data;
}

您还可以检查返回了多少行。如果返回的行数超过零,则可以返回 true。

function server_grafico_expirar($data) {
   $data = sanitize($data);
   $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'");
   return mysql_num_rows($query) > 0;
}

请注意,mysql 扩展自 PHP 5.5.0 起已被弃用,并将在未来被删除。相反,应该使用MySQLiPDO_MySQL扩展。

于 2013-08-04T18:54:46.757 回答
0

除了任何其他潜在错误之外,您的PHP解析器所说的是存在语法错误。它至少不在您向我们展示的内容中,但请确保您已关闭每个相应的大括号 ( { }) 并且它们正确匹配并且所有行都以分号 ( ;) 结尾。

我建议正确缩进以更容易地找到错误。

于 2013-08-04T18:58:38.863 回答