不知道哪里出了问题。
确实,问题在于提交页面后刷新,看起来代码运行良好。
但是,当我刷新数据库时,没有新数据...

模态(文件路径incl / modals.inc.php,包含在index.php文件中):

<div class="modal fade" id="addPlayer" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-header">
          <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
          <h4 class="modal-title" id="myModalLabel">Add Player </h4>
        </div>
          <div class="modal-body">
            <form action="incl/addplayer.inc.php" method="POST" class="form" role="form">
                  <div class="row">
                      <div class="col-xs-6 col-md-6">
                          <input class="form-control" name="addname" placeholder="First Name (*)" type="text" />
                      </div>
                      <div class="col-xs-6 col-md-6">
                          <input class="form-control" name="addsurname" placeholder="Last Name (*)" type="text"  />
                      </div>
                  </div><br/>
                  <div class="row">
                      <div class="col-xs-6 col-md-6">
                          <input class="form-control" name="addlvpoints" placeholder="LV points" type="text" />
                      </div>
                      <div class="col-xs-6 col-md-6">
                          <input class="form-control" name="additfpoints" placeholder="ITF points" type="text"  />
                      </div>
                  </div><br/>
                  <div class="row">
                      <div class="col-xs-6 col-md-6 col-md-offset-3">
                          <input class="form-control" name="addrank" placeholder="Rank" type="text" />
                      </div>
                  </div><br/>
                  <div class="row">
                      <div class="col-xs-6 col-md-6">
                        <label for="">
                           Gender</label>
                        <br/>
                        <label class="radio-inline">
                            <input type="radio" name="addgender" value="M" name="male" />
                            Male
                        </label>
                        <label class="radio-inline">
                            <input type="radio" name="addgender" value="F" name="female" />
                            Female
                        </label>
                      </div>
                  </div>
                  <br/><br/>
                  (*) - Required
                  <br/>
                  <br />
                  <button class="btn btn-lg btn-default btn-block" type="submit" name="addsubmit">
                      Add Player
                  </button>
              </form>
          </div>
        <div class="modal-footer">

        </div>
    </div>
  </div>
</div>


动作文件(incl / addplayer.inc.php):

<?php

include '../core.php';

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

    $rank = $_POST['addrank'];
    $name = $_POST['addname'];
    $surname = $_POST['addsurname'];
    $lvpoints = $_POST['addlvpoints'];
    $itfpoints = $_POST['additfpoints'];
    $gender = $_POST['addgender'];

    if(empty($name) || empty($surname) || empty($gender)){
        header("Location: ../index.php?error=empty");
        exit();
    } else {
        $sql = "INSERT INTO 'players' ('id', 'rank', 'surname', 'name', 'lvpoints', 'itfpoints', 'gender') VALUES (NULL, '$rank', '$surname', '$name', '$lvpoints', '$itfpoints', '$gender')";

        $result = mysqli_query($conn, $sql);

        header("Location: ../index.php?addedsuccessfuly");
    }

}

?>


提交表格后,转到

header("Location: ../index.php?addedsuccessfuly");


如例外

列结构:

id | rank | surname | name | lvpoints | itfpoints | gender


提前致谢!

最佳答案

首先尝试更改:

$result = mysqli_query($conn, $sql);


至:

$result = mysqli_query($sql);


其次,删除插入到ID。如果您在phpmyadmin中将其设置为“自动递增”,则ID将自动递增。来自:

$sql = "INSERT INTO 'players' ('id', 'rank', 'surname', 'name', 'lvpoints', 'itfpoints', 'gender') VALUES (NULL, '$rank', '$surname', '$name', '$lvpoints', '$itfpoints', '$gender')";


至:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$rank = $_POST["addrank"];
$surname = $_POST["addsurname"];
$name = $_POST["addname"];
$ivp = $_POST["addlvpoints"];
$ift = $_POST["additfpoints"];
$gender = $_POST["addgender"];

$sql = "INSERT INTO players (rank, surname, name, ivpoints, itfpoints, gender)
VALUES ('$rank', '$surname', '$name', '$ivp', '$ift', '$gender')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>


现在,代码可能会更加优雅和更好,但是在互联网上确实有大量关于安全地插入数据库的文章,这些文章还更详细,更好地解释了“做”和“不做”-只是谷歌搜索了。

在Stackoverflow上也有很多答案。

09-07 11:53
查看更多