Create database using mysqli with oops and insert value into database

I am getting an error while typing, so I am confused. Please help me or suggest me the best tutorial for oop

Testdb.php page

define('DB_SERVER', 'localhost');
define ('DB_USERNAME', 'ashish');
define ('DB_PASSWORD', 'ashish33'); 
define ('DB_DATABASE', 'users');

 class DB_Class 
    {
function __construct() {
            $connection = mysqli_connect("localhost", "root", "","test");

            if (mysqli_connect_errno()) {
              echo "Failed to connect to MySQL: " . mysqli_connect_error();
            }
}}

      

testclass.php page

class user {

    public $fname;
    public $lname;
    public $fullname;   
    public function __construct() 
    {
        $this->fname = $fname;
        $this->lname = $lname;
        $this->fullname = $fullname;
        $db = new DB_Class();
        $result = mysqli_query($db, "INSERT INTO users(fname, lname, fullname) values ('$this->fname', '$this->lname','$this->fullname')") or die(mysqli_error());
        return $result;
    }
}

      

post.php

$userTest = new user();
$userTest->fname = $_POST['fname'];
$userTest->lname = $_POST['lname'];
$userTest->fullname = $_POST['fullname'];
?>

      

+3


source to share


2 answers


Place it inside constructor parameters:

include 'testdb.php';

public function __construct($fname, $lname, $fullname) 
{
    $this->fname = $fname;
    $this->lname = $lname;
    $this->fullname = $fullname;
    $db = new DB_Class();
    $conn = $db->connect();
    // $db = new mysqli('localhost', 'username', 'password', 'database');
    $result = mysqli_query($conn, "INSERT INTO users(fname, lname, fullname) values ('$this->fname', '$this->lname','$this->fullname')") or die(mysqli_error());
    return $result;
}

      

Then initialization:

$userTest = new user($_POST['fname'], $_POST['lname'], $_POST['fullname']);

      



Sidenote: Since you are using mysqli why not use prepared statements.

EDIT: did you forget return

on DB_class

:

class DB_Class 
{
    public $conn;

    public function __construct() 
    {
        $connection = mysqli_connect("localhost", "root", "","test");

        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }
        $this->conn = $connection; // return the mysqli instance
    }

    public function connect()
    {
        return $this->conn;
    }
}

      

+2


source


you can try the below code in 

class user extends DB_Class{

    public $fname;
    public $lname;
    public $fullname;   
    public function __construct() 
    {
        parent::__construct(); //add this line of code 

    }
    public function insert($fname, $lname, $fullname)
    {
        $this->fname = $fname;
        $this->lname = $lname;
        $this->fullname = $fullname;
        $db = new DB_Class();
        $result = mysqli_query($db, "INSERT INTO users(fname, lname, fullname) values ('$this->fname', '$this->lname','$this->fullname')") or die(mysqli_error());
        return $result;
    }
}

      



+2


source







All Articles