如何使用php中的post方法更新mySQL数据库

时间:2015-06-26 05:33:10

标签: php mysql

我为网站创建了一个排行榜,用于显示用户对游戏的高分。但是当用户去编辑他们的高分时,它在数据库或屏幕上没有变化。有人知道如何使用post方法更新数据库。我的代码如下。

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>  

2 个答案:

答案 0 :(得分:0)

  

您必须注意SQL注入!

通常,您检查提交按钮:

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

然后

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

转到:

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

如果您的查询不起作用,您可以让die($query)查看并通过phpMyAdmin执行。或者,您可以使用mysqli_error在执行后显示任何已发生的错误。

请注意,您的代码只能使用数字值。如果您的字段不是数字,则应使用此字段:

$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"]);

答案 1 :(得分:0)

  

需要提交输入类型的名称才能提交表单...

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

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