0

我做了这个功能。它实际上是我做过的第一个函数。但是,我无法让它执行。$con 已定义,我只是没有粘贴它。实际上,所有变量都已定义。

function cleanse() {
    $cleansesql = "Select * FROM rated_teams WHERE server='$server' AND name='$myteam' AND opposition='$opposer'";
    $result = mysqli_query($con, $cleansesql)
    or die('A error occured: '.mysqli_error());
    while (($row = mysqli_fetch_array($result))) {
        if ($row['server'] == $server && $row['name'] == $myteam && $row['opposition'] == $opposer && $row['myscore'] == $myscore && $row['oscore'] == $oscore && $row['location'] == $location) {
            echo "There is a Match.";
        } else {
            echo "There are no matches";
        }
    }
}

这就是我所说的。

if ($solo == "solo" || $solo == "Solo" || $solo == "SOLO") {
    echo $solo." <br />";
    if (!empty($myscore)) {
        echo $myscore." <br />";
        if (!empty($oscore)) {
            echo $oscore." <br />";
            if (!empty($location)) {
                echo $location." <br />";
                cleanse();
            }
        }
    }
}

也许我没有正确调用它。我只需要一个比我了解更多的人来帮助...你们中的大多数人哈哈哈。

4

3 回答 3

1

请注意,您使用的变量$con是与 MySQL 的连接。
您尚未在查询之前创建与 MySQL 的连接。
我建议阅读有关使用 mysqli 的基本 PHP 手册。
请记住以下内容:

  1. 您需要连接到服务器
  2. 你需要选择你工作的数据库
  3. 您将对该数据库执行查询。

2 不是强制性的。

于 2013-08-03T23:16:41.750 回答
1

将信息传递给您的cleanse函数,例如$con(假设您在调用此函数之前已经创建了与数据库的连接),$server因此$myteam$opposer可以使用它。

因此,您的函数的定义将变为:

function cleanse($con, $server, $myteam, $opposer) { ... }

你会这样称呼它:

cleanse($con, $server, $myteam, $opposer);
于 2013-08-03T23:21:12.700 回答
0

Campari 是对的 - 这就是为什么您的功能不起作用的原因,但是:

您正在复制您的代码。该函数不需要检查您的测试条件和 sql 的输出之间是否匹配,因为数据库会为您执行此操作。您的 sql 说的是“获取与我的所有条件匹配的所有结果”,然后您的函数说“检查所有结果是否符合我的条件”,这很慢而且不需要。如果您正确编写 sql,则很少需要在 PHP 中进一步检查或合并数据。

function cleanse($connection, $server, $myteam, $opposer)
    {
    $cleansesql="Select * FROM rated_teams WHERE server=? AND name=? AND opposition=?";
    $stmnt=$connection->prepare($cleansesql);
    $stmnt->bind_param("sss",$server,$myteam,$opposer);
    $stmnt->execute();
    $stmnt->store_result();
    return $stmnt->num_rows;
    }

我为您编写的这个(未经测试的)函数应该返回rated_teams 中与变量中的所有条件匹配的行数。输入用户输入的数据也是安全的,因为它使用准备好的语句,因此不易受到 SQL 注入的影响。

于 2013-08-03T23:34:29.407 回答