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 to share
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 to share