我做了这个功能。它实际上是我做过的第一个功能之一。但是,我无法让它执行。 $ 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();
}
}
}
}
也许我没有正确地称它为正确。我只需要一个比我更了解的人来帮助......你们大部分都是哈哈哈。
答案 0 :(得分:1)
请注意,您使用的变量$con
是与MySQL的连接
在查询之前,您尚未创建与MySQL的连接
我建议阅读使用mysqli的基本PHP手册
请记住以下内容:
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注入的影响。