我为网站创建了一个排行榜,用于显示用户对游戏的高分。但是当用户去编辑他们的高分时,它在数据库或屏幕上没有变化。有人知道如何使用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>
答案 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']))