我无法将用户的电子邮件,姓名和密码插入数据库。 我的数据库表有四列“id”,“email”,“name”和“password”。 “id”设置为主键并自动递增。 但是当我注册一个用户时,只插入'id',而其他三列是空的。
<h2>Register Here</h2>
<form action="registration.php">
<div class="form-group">
<label>Email</label>
<input type="text" name="email" class="form-control" required>
</div>
<div class="form-group">
<label>Username</label>
<input type="text" name="user" class="form-control" required>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Register</button>
</form>
<?php
session_start();
header('Location: login.php');
$conn = mysqli_connect('localhost', 'root', '');
mysqli_select_db($conn, 'user_registration');
$email = $_POST['email'];
$name = $_POST['user'];
$password = $_POST['password'];
$select = "SELECT * FROM user_table WHERE name='$name'";
$result = mysqli_query($conn, $select);
$num = mysqli_num_rows($result);
if ($num == 1) {
echo "Username already taken.";
} else {
$register = "INSERT INTO user_table(email, name, password) VALUES ('$email', '$name', '$password')";
mysqli_query($conn, $register);
echo "Registration Successful.";
}
?>
该条目将进入数据库,因为数据库中添加了一个额外的行,但是除了'id'字段之外,所有内容都是空的。
注意:我知道代码容易受到SQL注入的影响。
尝试echo$register; 复制输出并在mysql上运行以查看结果;
或$queryresult=$conn->query($register)Var_dump($queryresult)
要调试