How to Insert Data in PHP OOP using MySqli Procedural

Insert Data into mysql database using PHP OOP


In this post, you will be learning about how to insert data into database using oops in php with mysqli procedural.

So, we will be using bootstrap 5 for designing the html form user interface.

We are going to MySqli Procedural to insert data in php oops.

Step 1: Create a table into your database as follows:

CREATE TABLE IF NOT EXISTS `students` (
    `id` int(11) NOT NULL,
    `fullname` varchar(191) NOT NULL,
    `email` varchar(191) NOT NULL,
    `phone` varchar(20) NOT NULL,
    `course` varchar(20) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;


Step 2: Create a student-add.php file and paste the below html form designed using bootstrap.

<?php session_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP OOPS - Insert Data into database in php mysql using oops</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">

</head>
<body>

    <div class="container mt-4">
        <div class="row">
            <div class="col-md-12">
                <?php
                    if(isset($_SESSION['message']))
                    {
                        echo "<h5>".$_SESSION['message']."</h5>";
                        unset($_SESSION['message']);
                    }
                ?>
                <div class="card">
                    <div class="card-header">
                        <h4>Student Add</h4>
                    </div>
                    <div class="card-body">

                        <form action="code.php" method="POST">
                            <div class="mb-3">
                                <label for="">Full Name</label>
                                <input type="text" name="fullname" required class="form-control" />
                            </div>
                            <div class="mb-3">
                                <label for="">Email ID</label>
                                <input type="text" name="email" required class="form-control" />
                            </div>
                            <div class="mb-3">
                                <label for="">Course</label>
                                <input type="text" name="course" required class="form-control" />
                            </div>
                            <div class="mb-3">
                                <label for="">Phone No</label>
                                <input type="text" name="phone" required class="form-control" />
                            </div>
                            <div class="mb-3">
                                <button type="submit" name="save_student" class="btn btn-primary">Save Student</button>
                            </div>
                        </form>

                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>

</body>
</html>


Step 3: Create a database connection. create a file dbconn.php and paste the below code:

Example: Database Connection with MySqli Precedural.

<?php

define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASSWORD','');
define('DB_DATABASE','adminpanel');

class DatabaseConnection
{
    public function __construct()
    {
        $conn = mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);

        if (!$conn)
        {
            die ("<h1>Database Connection Failed</h1>". mysqli_connect_error());
        }
        // echo "Database Connected Successfully";
        return $this->conn = $conn;
    }
}

?>


Step 4: Create a code.php file and paste the below:

In this file, we will include the database connection file and StudentController.php file to insert record.

<?php
session_start();

include('dbconn.php');
include('StudentController.php');

$db = new DatabaseConnection;

if(isset($_POST['save_student']))
{
    $inputData = [
        'fullname' => mysqli_real_escape_string($db->conn,$_POST['fullname']),
        'email' => mysqli_real_escape_string($db->conn,$_POST['email']),
        'phone' => mysqli_real_escape_string($db->conn,$_POST['phone']),
        'course' => mysqli_real_escape_string($db->conn,$_POST['course']),
    ];

    $student = new StudentController;
    $result = $student->create($inputData);
   
    if($result)
    {
        $_SESSION['message'] = "Student Added Successfully";
        header("Location: student-add.php");
        exit(0);
    }
    else
    {
        $_SESSION['message'] = "Not Inserted";
        header("Location: student-add.php");
        exit(0);
    }
}
?>


Step 5: Create a StudentController.php file and paste the below to insert data into database.

Example: Insert Query with MySqli Procedural.

<?php

class StudentController
{
    public function __construct()
    {
        $db = new DatabaseConnection;
        $this->conn = $db->conn;
    }

    public function create($inputData)
    {
        $fullname = $inputData['fullname'];
        $email = $inputData['email'];
        $phone = $inputData['phone'];
        $course = $inputData['course'];

        $studentQuery = "INSERT INTO students (fullname,email,phone,course) VALUES ('$fullname','$email','$phone','$course')";
        $result = mysqli_query($this->conn, $studentQuery);
        if($result){
            return true;
        }else{
            return false;
        }
    }
}

?>


That's it.

Thanks for reading.