函数中的mysql查询...无法正常工作

时间:2013-08-03 23:13:48

标签: php mysql

我做了这个功能。它实际上是我做过的第一个功能之一。但是,我无法让它执行。 $ 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();
            }
        }
    }
}

也许我没有正确地称它为正确。我只需要一个比我更了解的人来帮助......你们大部分都是哈哈哈。

3 个答案:

答案 0 :(得分:1)

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

  1. 您需要连接到SERVER
  2. 您需要选择反对的工作
  3. 您将对该数据库执行查询。
  4. 2不是强制性的。

答案 1 :(得分:1)

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

所以你的函数的定义将成为:

$opposer

你会这样称呼它:

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

答案 2 :(得分: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注入的影响。