php - MySQL 查询不更新 PHP 数据库中的值

标签 php mysql sql

下面有一个 if/else 代码块,应该根据情况调用具有特定参数的函数。该函数更新 MySQL 数据库中的特定值。但是,数据库值并未更新。我做错了什么?

以下是我的代码:

process.php

$success = false;

$homeScore = $_POST['home'];
$awayScore = $_POST['away'];
$homeTeamName = $_POST['homeTeam'];
$awayTeamName = $_POST['awayTeam'];

try {
    $win = 0;
    $loss = 0;

    // HOME TEAM
    if ($homeScore > $awayScore)
    {
        $win = 1; $loss = 0;
        updateStandings($db7, $homeTeamName, $win, $loss);
        $win = 0; $loss = 1;
        updateStandings($db7, $awayTeamName, $win, $loss);
    }
    // AWAY TEAM
    elseif ($awayScore > $homeScore)
    {
        $win = 1; $loss = 0;
        updateStandings($db7, $awayTeamName, $win, $loss);
        $win = 0; $loss = 1;
        updateStandings($db7, $homeTeamName, $win, $loss);
    }

    $success = $_SERVER['HTTP_REFERER'];
}
catch (Exception $e)
{
    $success="/error";
}
header("Location: " . $success);

function updateScore($db, $gameID, $home, $away)
{
    $db -> updateScoreForGame($gameID, $home, $away);
}
function updateStandings($db, $teamName, $win, $loss)
{
    $db -> updateLeagueStandings($teamName, $win, $loss);
}

更新LeagueStandings函数

public function updateLeagueStandings($teamName, $win, $loss) {
    try {
        $sth = $this -> db -> prepare("UPDATE teams SET wins = wins + (:winsNum), losses = losses + (:lossesNum) WHERE Name = `:teamName`");
        $sth->bindParam(':winsNum', $win, PDO::PARAM_INT);
        $sth->bindParam(':lossesNum', $loss, PDO::PARAM_INT);
        $sth->bindParam(':teamName', $teamName, PDO::PARAM_STR);
        $sth -> execute();
    } catch (Exception $e) {
        header('Location: /error');
    }
}

这里出了什么问题?是不是查询有误?我在 PHPMyAdmin 中使用替换值运行了查询,并且运行良好,因此它不可能是查询。

最佳答案

WHERE Name = `:teamName`

如果这正是您的脚本中的内容,那么您需要删除变量周围的反引号。

反引号用于引用字段名称。

some extend reading

关于php - MySQL 查询不更新 PHP 数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105438/

相关文章:

php - 将字符串视为字符数组是否会返回 “Uninitialized string offset”通知?

PHP - 发送带有一个复选框和 POST 的完整行

php - 如何在codeIgniter中将参数传递给 Controller

php - Phpstorm未配置SQL方言

php - 从 php 执行 jquery 代码

mysql - 替代 MySql 中的 DROP 或 CREATE

mysql - 如何获取这两个表之间的相关数据

sql - 匹配字符串中的 2 个字符 - SQL

PHP/MySQL 将相同的数据插入到两个表中

SQL UPDATE 字符串中的特定字符