-1

This is the code I've used all the way up until PHP 7.2 which has broken this.

Excuse my ignorance, but what do I need to change for this to work again

class object {};

$siteinfo = mysqli_fetch_object(mysqli_query($GLOBALS["dbconn"], "SELECT * FROM tbl_siteinfo WHERE siteid = 1"));

$CFG = new object;

$CFG->wwwroot           = $siteinfo->siteurl;
$CFG->mainpage          = $siteinfo->mainpage;
$CFG->sitename          = $siteinfo->sitename;
$CFG->dirroot           = $siteinfo->dirroot;
  • 1
    Does this answer your question? [Cannot use 'Object as class name as it is reserved Cake 2.2.x](https://stackoverflow.com/questions/52981403/cannot-use-object-as-class-name-as-it-is-reserved-cake-2-2-x) – Omkar76 Jan 06 '21 at 05:55
  • 2
    `object` is a reserved word in PHP that's why – Kevin Jan 06 '21 at 05:57

2 Answers2

0

Changed to:

class object1 {};

$siteinfo = mysqli_fetch_object(mysqli_query($GLOBALS["dbconn"], "SELECT * FROM tbl_siteinfo WHERE siteid = 1"));

$CFG = new object1;

$CFG->wwwroot           = $siteinfo->siteurl;
$CFG->mainpage          = $siteinfo->mainpage;
$CFG->sitename          = $siteinfo->sitename;
$CFG->dirroot           = $siteinfo->dirroot;

Pretty simple in the end.

Dharman
  • 30,962
  • 25
  • 85
  • 135
0

Remove your definition of object and instead instantiate stdClass. Every instance of the standard class is a generic object.

Even better, simply fetch an object from mysqli result.

$result = mysqli_query($GLOBALS["dbconn"], "SELECT siteurl as wwwroot, mainpage, sitename, dirroot FROM tbl_siteinfo WHERE siteid = 1");
$siteinfo = mysqli_fetch_object($result);
Dharman
  • 30,962
  • 25
  • 85
  • 135