상황에 따라 특정 매개 변수가있는 함수를 호출해야하는 if/else 블록이 아래에 있습니다. 함수는 MySQL 데이터베이스의 특정 값을 업데이트합니다. 그러나 데이터베이스 값은 갱신되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?MySQL 데이터베이스의 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);
}
updateLeagueStandings 여기에 잘못된 무엇
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');
}
}
를 작동
process.php :
다음은 내 코드입니다? 검색어가 잘못 되었습니까? PHPMyAdmin에서 대체 된 값으로 쿼리를 실행 했으므로 문제가되지 않아 쿼리가 될 수 없습니다.
$ homeTeamName> $ awayTeamName ---이 이름이 아닙니다. 점수를 비교해서는 안됩니까? $ homeScore = $ _POST [ 'home']; $ awayScore = $ _POST [ 'away']; – pathfinder
죄송합니다. 코드의 해당 부분을 잘못 복사했습니다. 내가 이미 말한 코드는 : if ($ homeScore> $ awayScore) ... elseif ($ awayScore> $ homeScore)' – DemCodeLines