I am working on version upgrade from php5 version to php8 and getting issue in database connection. DB connection is working for other php files but in class files it's not working. This is my connection class.
<?php
include/conn.php
class connection {
var $dbhost = "localhost";
var $dbusername = "root";
var $dbpassword = "";
var $dbname = "test_db";
function connection(){
$this->link=mysqli_connect($this->dbhost,$this->dbusername,$this->dbpassword,$this->dbname) or die( "db-connect".$this->link -> connect_error );
$this->admin_mailID;
$this->sitename=$_SERVER['HTTP_HOST'];
return $this->link;
}
function pconnection(){
$this->link=mysql_pconnect($this->dbhost,$this->dbusername,$this->dbpassword) or die( "db-connect". mysql_error());
$this->admin_mailID;
$this->database=mysqli_select_db($this->dbname,$this->link) or die( "db-select". mysql_error() );
}
function closedb ()
{
mysql_close ( $this->link ) or die( "db-close". mysql_error() );
}
}
I am trying to include this connection in my pagination class. This is pagination.php file. In this file i have called conn.php file and trying to call $conn in GetRecordsNew() function.
<?php
global $conn;
require("class.pagination.php");
require_once("conn.php"); //conn.php and pagination.php are in same include folder
$connection = new connection();
$conn = $connection->connection();
//////////////////////////////// Class For Paging ////////////////////////////////
class webPagination extends pagination // pagination is a class which is defined in the file class.pagination.php
{
//define the private variables
var $sql;
var $num_of_records;
var $current_page;
//define the constructor
function webPagination($sql,$per_page_records,$c_page=1)
{
if($c_page==1&&isset($_REQUEST['p']))
$c_page=$_REQUEST['p'];
$this->sql=$sql;
$this->current_page=$c_page;
$qid=mysqli_query($conn,$this->sql);
if(!$qid)
{
echo "<pre>";
echo "Mysql Error:--".mysqli_error()."<br> Sql Query is:: <br> $sql";
echo "</pre>";
exit;
}
else
{
$this->num_of_records=mysqli_num_rows($qid);
}
// to access the pagination class function
parent::pagination($c_page,$this->num_of_records,$per_page_records);
}
function LimitSql()
{
return $this->sql.$this->SqlLimit();
}
function GetRecordsNew()
{
$qid=mysqli_query($conn,$this->LimitSql());
if(!$qid)
{
echo "Mysql Error:--".mysqli_error()."<br> Sql Query is:: <br> $this->LimitSql()";
exit;
}
$records=array();
while($rec=mysqli_fetch_array($qid,MYSQL_ASSOC))
{
$records[]=$rec;
}
return $records;
}
}
I have called this GetRecordsNew() function in other file and in that file it's showing error
Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in E:\xampp\htdocs\project\include\pagination.php:150 Stack trace: #0
I am not sure why not able to call connection in class file. In other class files also getting same error.
source https://stackoverflow.com/questions/68545569/php-8-fatal-error-getting-mysqli-issue-trying-to-call-in-class
Comments
Post a Comment