简体   繁体   中英

how to update mySQL database using a post method in php

i have created a leaderboard for a website which displays users high scores for a game. but whe the user goes to edit their high score, it doesnt change in the database or on the screen. does anybody know how to update the database using a post method. my code is below.

require_once('../sokodatabase.php');

//require_once('../sokodatabase.php');
//require_once('../sokodatabase.php');
        if(isset($_POST['userId'])){
        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
                $query = "
                UPDATE leaderboardhighscores
                SET highScores=".$_POST["highScores"].", rankNo=".$_POST["rankNo"]."
                WHERE userId=".$_POST["userId"];

            var_dump($_POST); 
            echo $query;

            @mysqli_query($dbc, $query);
        }
        }
$manager = new DatabaseManager;
$manager->SelectHighScores();
?>

<form method="post" action="highScores.php">
    high score <input type="text" name="highScores"/>
    rankNo <input type="text" name="rankNo"/>
    userId <input type="text" name="userId"/>
    <input type="submit" value="Submit">
</form>  

You have to provide attention to SQL injections!

Normally, you check for the submit button:

<input type="submit" name="submit" value="Submit">

Then

if(isset($_POST['userId'])){
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {

goes to:

if(isset($_POST['submit'])){

If your query does not work, you can make die($query) to see it and perform it via phpMyAdmin. Or you can use mysqli_error to display any occured error after executing it.

Please note, that with your code only numeric values are possible. If your fields are not numeric, you should use this:

$query = "
            UPDATE leaderboardhighscores
            SET highScores='".mysqli_real_escape_string($dbc, $_POST["highScores"])."', rankNo='".mysqli_real_escape_string($dbc, $_POST["rankNo"])."'
            WHERE userId=".intval($_POST["userId"]);

Need name for the submit input type in-order to submit the form...

Like

 <input type="submit" name="userId" value="Submit">

 if(isset($_POST['userId']))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM