tags:

views:

51

answers:

2

Hello,

I've run into problems extending the MySQLi class. It won't let me add any properties.

class MySQLii extends MySQLi {

 public $database;

 public function MySQLii($host, $username, $password, $database){

  // Initialize MySQLi
  parent::MySQLi($host, $username, $password, $database);

  // Save database name
  $this->database = $database;

 }

}

$mysqlii = new MySQLii('localhost', 'root', 'password', 'database');

var_dump($mysqlii);

object(MySQLii)#1 (17) {
["affected_rows"]=> int(0)
["client_info"]=> string(48) "mysqlnd 5.0.5-dev - 081106 - $Revision: 289630 $"
["client_version"]=> int(50005)
["connect_errno"]=> int(0)
["connect_error"]=> NULL
["errno"]=> int(0) ["error"]=>
string(0) "" ["field_count"]=>
int(0) ["host_info"]=> string(42) "MySQL host info: Localhost via UNIX socket" ["info"]=> NULL
["insert_id"]=> int(0)
["server_info"]=> string(6) "5.1.44" ["server_version"]=> int(50144)
["sqlstate"]=> string(5) "00000"
["protocol_version"]=> int(10)
["thread_id"]=> int(4019)
["warning_count"]=> int(0) }

Note the absence of the database property I added in the MySQLii constructor. Am I missing something?

A: 

Hm, either I am missing something or you named your constructor MySQLii instead of __construct. (This is not Java ;))

Renaming it appropriately could solve the problem as it looks as if your constructor is not called.

middus
You can substitute your constructor's function name for that of the class in PHP as well.
Johannes Gorset
A: 

Apparently extending the MySQLi class makes it impossible to add additional properties. Bad PHP. Bad.

Johannes Gorset