Вставьте данные в базу данных MySQL из формы PHP с помощью (SELECT) и (INSERT INTO)

У меня есть класс, где мне нужно создать сайт с базами данных PHP и MySQL. Проблема в том, что я не могу вставить данные из формы PHP в мою базу данных. Пользователю предлагается написать свое имя пользователя и пароль, после чего ему предлагается ввести различные значения, которые будут вставлены в базу данных. С именем пользователя и паролем мне нужно найти идентификатор пользователя. С этим Id мне нужно вставить значения, введенные пользователем веб-сайта, в таблицу PERSONNAGE, где IdUser строки соответствует имени пользователя и паролю пользователя. Вот пример, чтобы объяснить себя лучше:

<form action="backend.php" method="POST">
<fieldset>
<legend>Creation Personnage</legend>

<label> Username :
<input type="text" name="nom" id="nom" />
</label>

<label> Password :
<input type="text" name="mdp" id="mdp" />
</label>

<br><br><br><br>

<label> Race :
<input type="text" name="race" id="race" />
</label>

<label> Classe :
<input type="text" name="classe" id="classe" />
</label>

<br><br>

<label> Niveaux :
<input type="text" name="niveaux" id="niveaux" />
</label>

<label> Experience :
<input type="text" name="experience" id="experience" />
</label>

<br><br>

<label> Sexe :
<input type="text" name="sexe" id="sexe" />
</label>

<label> Age :
<input type="text" name="age" id="age" />
</label>

<br><br>

<label> Poids :
<input type="text" name="poids" id="poids" />
</label>

<label> Peau :
<input type="text" name="peau" id="peau" />
</label>

<br><br>

<label> Cheveux :
<input type="text" name="cheveux" id="cheveux" />
</label>

<label> Yeux :
<input type="text" name="yeux" id="yeux" />
</label>

<br><br>

<label> Religion :
<input type="text" name="religion" id="religion" />
</label>

<label> Portrait :
<input type="text" name="portrait" id="portrait" />
</label>

<br><br>


</fieldset>

<input type="submit" value="Ajouter">
</div>

Вот backend.php:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include_once($_SERVER["DOCUMENT_ROOT"]."/cnxPDO.php");
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$con = connecPDO("DD", "myparam");
$nom = $_POST['nom'];
$mdp = $_POST['mdp'];
$race = $_POST['race'];
$classe = $_POST['classe'];
$niveaux = $_POST['niveaux'];
$experience = $_POST['experience'];
$sexe = $_POST['sexe'];
$age = $_POST['age'];
$poids = $_POST['poids'];
$peau = $_POST['peau'];
$cheveux = $_POST['cheveux'];
$yeux = $_POST['yeux'];
$religion = $_POST['religion'];
$portrait = $_POST['portrait'];

$idUser = 'SELECT idUser FROM USER WHERE nom = '$nom' AND mdp = '$mdp'';

$sql='INSERT INTO PERSONNAGE(idUser,race,classe,niveaux,experience,sexe,age,poids,peau,cheveux,yeux,religion,portrait)
VALUES(:idUser,:race,:classe,:niveaux,:experience,:sexe,:age,:poids,:peau,:cheveux,:yeux,:religion,:portrait)';

$stmt = $con->prepare($sql);
$stmt->BindParam(':idUser',$idUser);
$stmt->BindParam(':race',$race);
$stmt->BindParam(':classe',$classe);
$stmt->BindParam(':niveaux',$niveaux);
$stmt->BindParam(':experience',$experience);
$stmt->BindParam(':sexe',$sexe);
$stmt->BindParam(':age',$age);
$stmt->BindParam(':poids',$poids);
$stmt->BindParam(':peau',$peau);
$stmt->BindParam(':cheveux',$cheveux);
$stmt->BindParam(':yeux',$yeux);
$stmt->BindParam(':religion',$religion);
$stmt->BindParam(':portrait',$portrait);

if (!$stmt->execute()) {
echo "<br>PDO::errorCode():";
print_r($stmt->errorCode());
echo "<br>PDO::errorInfo():";
print_r($stmt->errorInfo());
}
else { echo " <br> Sauvegarde effectuée";  }
}
?>

Я действительно нуждаюсь в помощи, чтобы закончить это, или я не буду проходить мой класс !! Дело в том, что наш учитель ничего не объясняет в классе, и мы должны найти все в Интернете! Я не понимаю 3/4 PHP и MySQL. Поэтому мне действительно нужна помощь! Еще много чего мне нужно сделать, но я начну с этого.

0

Решение

Ошибка напрямую связана с тем, что для параметров оператора SQL указано неверное количество переменных. Кроме того, вы пытаетесь обновить столбец, который не существует в таблице.

Убедитесь, что имена столбцов точно совпадают с указанными именами столбцов в операторе, и убедитесь, что вы предоставляете данные только для столбцов, которые существуют в таблице.

Кроме того, если вы хотите, чтобы PHP интерполировал значения в переменных внутри вашего оператора SQL, вы ДОЛЖНЫ использовать двойные кавычки вместо одинарных кавычек для вашего оператора SQL. PHP будет интерполировать значения в переменные, только если вы используете двойные кавычки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector