我有一个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);
4条答案
按热度按时间cwtwac6a1#
所以我发现了问题所在。一些文本字段的名称在单词之间有空格。在$\u post中收集时,php将用下划线替换空格。在第16-20行中,我使用了空格,因为这是名称在html中的拼写方式,而不是下划线。正如其他人指出的,我忘了在准备好的语句中的变量名周围加上“”。感谢所有帮助过你的人!
xdnvmnnf2#
请尝试输入以下代码once:-
把这个换掉line:-
可能日期格式在保存数据时引发错误。
dsf9zpds3#
我认为准备好的声明应该更像这样:
php pdo准备语句
xggvc2p64#
你需要使用
'
. 这是你的新衣服enterUserData
功能: