不知道哪里出了问题。
确实,问题在于提交页面后刷新,看起来代码运行良好。
但是,当我刷新数据库时,没有新数据...
模态(文件路径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">×</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上也有很多答案。