Я пытаюсь выяснить, как вставить информацию в мою базу данных из пользовательского ввода из HTML-формы, используя PHP, но я не уверен на 100%, как.
Вот что у меня сейчас.
HTML
<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" value="playerName">
Player Race: <input type="text" value="playerRace">
Player Class: <input type="text" value="playerClass">
<button id="submit">Submit</button>
</form>
PHP
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
//create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//check connection
if(!$conn){
die("Unable to connect to MySQL: " . mysqli_connect_error());
}
echo "connected successfully"."<br><br>";
//selects the different data types from the professions table
$sql = "INSERT INTO Player (PlayerName, PlayerRace, PlayerClass)
VALUES()";
$result = $conn->query($sql);
$conn->close();
попробуйте ниже code.and должно быть одно поле AUTO_INCREMENT в вашей таблице ‘Player’.
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
//create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
//check connection
if(!$conn){
die("Unable to connect to MySQL: " . mysqli_connect_error());
}
echo "connected successfully"."<br><br>";
if(isset($_REQUEST["submit"])){
$p_name = $_POST['playerName'];
$p_race = $_POST['playerRace'];
$p_class = $_POST['playerClass'];
//selects the different data types from the professions table
$sql = mysqli_query($conn,"INSERT INTO Player (PlayerName, PlayerRace, PlayerClass)
VALUES('$p_name','$p_race','$p_class')");}
$conn->close();
?><form id="playerForm" method="post">
Player Name: <input type="text" name="playerName">
Player Race: <input type="text" name="playerRace">
Player Class: <input type="text" name="playerClass">
<input type="submit" name="submit" value="SUBMIT"/>
</form>
вам нужно назначить форму name attribute
, если вы не используете имя, то вы не можете получить данные, и если вы хотите установить поле ввода пустым, поэтому в этом случае не устанавливайте значение
<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName" value="playerName">
Player Race: <input type="text" name="playerRace" value="playerRace">
Player Class: <input type="text" name="playerClass" value="playerClass">
<input type="submit" value="submit">
</form>
если вы хотите установить поле ввода пустым, то в этом случае не устанавливайте значение
<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName" value="">
Player Race: <input type="text" name="playerRace" value="">
Player Class: <input type="text" name="playerClass" value="">
<input type="submit" value="submit">
</form>
и это ваш файл insert.php, и важно то, что ваша структура таблицы должна быть в порядке и использовать также автоинкремент и первичный ключ, который поможет вам
<?php
$link = mysqli_connect("localhost", "jgbydtoz_root", "123warcraft", "jgbydtoz_warcraft");if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}$playerName = mysqli_real_escape_string($link, $_POST['playerName']);
$playerRace = mysqli_real_escape_string($link, $_POST['playerRace']);
$playerClass = mysqli_real_escape_string($link, $_POST['playerClass']);
$sql = "INSERT INTO Player (`PlayerName`, `PlayerRace`, `PlayerClass`) VALUES ('$playerName', '$playerRace', '$playerClass')";
if(mysqli_query($link, $sql)){
echo "added successfully.";
} else{
echo "ERROR: . " . mysqli_error($link);
}mysqli_close($link);
?>
Первое, что вам нужно сделать, это Учебник по HTML-формам
Ваши входные данные формы не имеют значений имен вообще, поэтому вы не сможете извлечь любое значение из php и сохранить
вот как должна выглядеть ваша форма:
<form id="playerForm" action="insert.php" method="post">
Player Name: <input type="text" name="playerName">
Player Race: <input type="text" name="playerRace">
Player Class: <input type="text" name="playerClass">
<button id="submit" type="submit">Submit</button>
</form>
Затем в insert.php
проверьте, установлены ли входы и не пусты ли они перед обработкой. тогда, если все готово, вы можете идти, используйте MySQL подготовил заявления вставить данные / pdo подготовил заявления
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$errors = "";
$fields = array("playerName","playerRace","playerClass");
foreach ($fields as $fieldName) {
if (!isset($_POST[$fieldName]) && !empty($_POST[$fieldName])) {
$errors++;
die("Fill in all the fields");
}
}
if ($errors <= 0) {
$playername = $_POST['playerName'];
$playerrace = $_POST['playerRace'];
$playerclass = $_POST['playerClass'];
$sql = $conn->prepare("INSERT INTO Player (PlayerName,PlayerRace,PlayerClass) VALUES(?,?,?");
$sql->bind_param("sss", $playername, $playerrace, $playerclass);
if ($sql->execute()) {
echo "data inserted";
} else {
echo "Error : " . $conn->error; // in live site send this to error log not browser
}
}?>