i have a registration form that should insert data but im always getting this error after submitting my form
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'first_name' cannot be null
HTML under sign-up.php
<div class="form-group">
<label>Complete Name:</label>
<input type="text" class="form-control" name="fname" placeholder="First Name"><br>
<input type="text" class="form-control" name="mname" placeholder="Middle Name"><br>
<input type="text" class="form-control" name="lname" placeholder="Last Name (this will be your username)"
value="<?php if(isset($error)){echo $uname;}?>"><br>
</div>
<div class="form-group">
<input type="password" class="form-control" name="txt_upass" placeholder="Password (more than 6 characters)"><br>
</div>
PHP under sign-up.php
if(isset($_POST['btn-signup']))
{
$fName = strip_tags($_POST['fname']);
$mName = strip_tags($_POST['mname']);
$uname = strip_tags($_POST['lname']);
$upass = strip_tags($_POST['txt_upass']);
if($uname=="") {
$error[] = "provide username !";
}
else if($upass=="") {
$error[] = "provide password !";
}
else if(strlen($upass) < 6){
$error[] = "Password must be atleast 6 characters";
}
else
{
try
{
$stmt = $user->runQuery("SELECT last_name FROM users WHERE last_name=:uname");
$stmt->execute(array(':uname'=>$uname));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
if($row['last_name']==$uname) {
$error[] = "Username already taken !";
}
else
{
if($user->register($fName,$mName,$uname,$upass)){
$user->redirect('sign-up.php?joined');
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
}
PHP function under class.user.php
public function register($fName,$mName,$uname,$upass)
{
try
{
$new_password = password_hash($upass, PASSWORD_DEFAULT);
$stmt = $this->conn->prepare("INSERT INTO users(first_name,middle_name,last_name,user_pass)
VALUES(:fName,:mName,:uname,:upass)");
$stmt->bindparam(":fName", $first_name);
$stmt->bindparam(":mName", $middle_name);
$stmt->bindparam(":uname", $last_name);
$stmt->bindparam(":upass", $new_password);
$stmt->execute();
return $stmt;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}