表单数据未存储在数据库中

wlwcrazw  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(535)

我有一个html表单,提交后会将数据发送到createuser.php。然后数据存储在变量中,并使用enteruserdata函数插入数据库。i var\u转储$\u post数组,所有数据都在那里,但是它不会被输入数据库。我已经检查了拼写错误,删除了婚姻状况,因为它在一个数据列表中,更改了$后到$请求,但它仍然不起作用。也没有400或500个错误。与数据库的连接正常。我在程序的其他部分使用相同的connect.php文件,它们工作正常。对这个问题的任何见解都将不胜感激。
这是表格。

<form id="createUserForm" class="" action="createUser.php" method="POST" onsubmit="return createUser.validateForm('createUserForm')">
<label for="formUsername">Username: </label>
<input id="formUsername" type="text" required name="Username" placeholder="Username">
<br />
<label for="formPassword">Password: </label>
<input id="formPassword" type="text" required name="Password" placeholder="Password">
<br />
<label for="formFirstname">Firstname: </label>
<input id="formFirstname" type="text" required name="Firstname" placeholder="Firstname">
<br />
<label for="formLastname">Lastname: </label>
<input id="formLastname" type="text" required name="Lastname" placeholder="Lastname">
<br />
<label for="formFavColor">Favorite Color: </label>
<input id="formFavColor" type="text" name="Favorite Color" placeholder="Favorite Color">
<br />
<label for="formFavMove">Favorite Movie: </label>
<input id="formFavMove" type="text" name="Favorite Movie" placeholder="Favorite Movie">
<br />
<label for="formFavAnimal">Favorite Animal: </label>
<input id="formFavAnimal" type="text" name="Favorite Animal" placeholder="Favorite Animal">
<br />
<label for="formFaveVideogame">Favorite Videogame:</label>
<input id="formFaveVideogame" type="text" name="Favorite Videogame" placeholder="Favorite Videogame">
<br />
<label for="formMarital">Marital Status: </label>
<input list="formMarital" name="Marital Status">
<datalist id="formMarital" type="text" name="" placeholder="Marital Status">
<option value="Single"></option>
<option value="Married"></option>
<option value="None of my business"></option>
</datalist>
<br />
<button id="submitCreateUser" type="submit" name="button">Create User</button>
</form>

下面是createuser.php文件。

include 'loginManager.php';

function enterUserData($Username,$Password,$Firstname,$Lastname,$DateJoined,$FavoriteColor,$FavoriteMovie,$FavoriteAnimal,$FavoriteVideogame,$MaritalStatus){
  include 'connect.php';
  $query = $loginSystem->prepare("INSERT INTO users (Username,Password,FirstName,LastName,DateJoined,FavoriteColor,FavoriteMovie,FavoriteAnimal,FavoriteVideogame,MaritalStatus) VALUES ($Username,$Password,$Firstname,$Lastname,$DateJoined,$FavoriteColor,$FavoriteMovie,$FavoriteAnimal,$FavoriteVideogame,$MaritalStatus)");
  $query->execute();
}

$username = $_POST["Username"];
$password = $_POST["Password"];
$firstname = $_POST["Firstname"];
$lastname = $_POST["Lastname"];
$dateJoined = strftime('%D');
$favoriteColor = $_POST["Favorite Color"];
$favoriteMovie = $_POST["Favorite Movie"];
$favoriteAnimal = $_POST["Favorite Animal"];
$favoriteVideogame = $_POST["Favorite Videogame"];
$maritalStatus = $_POST["Marital Status"];

enterUserData($username,$password,$firstname,$lastname,$dateJoined,$favoriteColor,$favoriteMovie,$favoriteAnimal,$favoriteVideogame,$maritalStatus);

下面是connect.php文件。

$host       = "localhost";
$username   = "root";
$password   = "";
$dbname     = "login_system";

$dsn ="mysql:host=$host;dbname=$dbname;";

$loginSystem = new PDO($dsn,$username,$password);
cwtwac6a

cwtwac6a1#

所以我发现了问题所在。一些文本字段的名称在单词之间有空格。在$\u post中收集时,php将用下划线替换空格。在第16-20行中,我使用了空格,因为这是名称在html中的拼写方式,而不是下划线。正如其他人指出的,我忘了在准备好的语句中的变量名周围加上“”。感谢所有帮助过你的人!

xdnvmnnf

xdnvmnnf2#

请尝试输入以下代码once:-

$dateJoined = strftime('%D'); to $dateJoined = date('Y-m-d');

把这个换掉line:-

$query = $loginSystem->prepare("INSERT INTO users (Username,Password,FirstName,LastName,DateJoined,FavoriteColor,FavoriteMovie,FavoriteAnimal,FavoriteVideogame,MaritalStatus) VALUES ('$Username','$Password','$Firstname','$Lastname','$DateJoined','$FavoriteColor','$FavoriteMovie','$FavoriteAnimal','$FavoriteVideogame','$MaritalStatus')");

可能日期格式在保存数据时引发错误。

dsf9zpds

dsf9zpds3#

我认为准备好的声明应该更像这样:

$query = $loginSystem->prepare("INSERT INTO users (Username,Password,FirstName,LastName,DateJoined,FavoriteColor,FavoriteMovie,FavoriteAnimal,FavoriteVideogame,MaritalStatus) VALUES (?,?,?,?,?,?,?,?,?,?)");

$query->bind_param("ssssssssss", $Username,$Password,$Firstname,$Lastname,$DateJoined,$FavoriteColor,$FavoriteMovie,$FavoriteAnimal,$FavoriteVideogame,$MaritalStatus);

$query->execute();

php pdo准备语句

xggvc2p6

xggvc2p64#

你需要使用 ' . 这是你的新衣服 enterUserData 功能:

function enterUserData($Username,$Password,$Firstname,$Lastname,$DateJoined,$FavoriteColor,$FavoriteMovie,$FavoriteAnimal,$FavoriteVideogame,$MaritalStatus){
  include 'connect.php';
  $query = $loginSystem->prepare("INSERT INTO users (Username,Password,FirstName,LastName,DateJoined,FavoriteColor,FavoriteMovie,FavoriteAnimal,FavoriteVideogame,MaritalStatus) VALUES ('$Username','$Password','$Firstname','$Lastname','$DateJoined','$FavoriteColor','$FavoriteMovie','$FavoriteAnimal','$FavoriteVideogame','$MaritalStatus')");
  $query->execute();
}

相关问题