#38947 [NEW]: Unable to extend mysqli class properly without causing various fatal errors

2006-09-25 Thread rk at yes-co dot nl
From: rk at yes-co dot nl
Operating system: Debian
PHP version:  5.1.6
PHP Bug Type: MySQLi related
Bug description:  Unable to extend mysqli class properly without causing 
various fatal errors

Description:

Problem with extension of mysqli library.

Reproduce code:
---
?php
//loaded mysql via dl() function  
$server = 'localhost'; $dbname = 'ws_matching';  $username = 'root'; 
$password = '';  $port = 3306; $socket = '/tmp/mysql.sock';
class example_mysqli extends mysqli{
  function query($query){
$result = parent::query($query);
if(mysqli_error($this)){
  throw new exception(mysqli_error($this), mysqli_errno($this));
}
return $result;
  }
}
//$my = new mysqli($server,$username,$password,$dbname,$port,$socket);
//works properly
$my = new example_mysqli($server,$username,$password,
$dbname,$port,$socket);   //gives strange errors
$result = $my-query('SELECT * FROM housesnl_demand');
while($row = $result-fetch_row()){
  print_r($row);
}
$result-close();
$my-close();
?

Expected result:

Array ( [0] = 2006-09-25 12:09:58 )

Actual result:
--
possible fatal errors:

Fatal error: mysqli_stmt::data_seek() must be derived from
example_mysqli::data_seek in Unknown on line 0

Fatal error: mysqli_stmt::bind_param() must be derived from
example_mysqli::bind_param in Unknown on line 0


Warning: Wrong parameter count for mysqli_stmt::mysqli_stmt() in
/mnt/data/home/rob/public_html/MatchingRevised/strange_error_mysqli.php on
line 19


Fatal error: Call to undefined method mysqli_warning::query() in
/mnt/data/home/rob/public_html/MatchingRevised/strange_error_mysqli.php on
line 11

etc... error changes

-- 
Edit bug report at http://bugs.php.net/?id=38947edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=38947r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=38947r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=38947r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=38947r=fixedcvs
Fixed in release: 
http://bugs.php.net/fix.php?id=38947r=alreadyfixed
Need backtrace:   http://bugs.php.net/fix.php?id=38947r=needtrace
Need Reproduce Script:http://bugs.php.net/fix.php?id=38947r=needscript
Try newer version:http://bugs.php.net/fix.php?id=38947r=oldversion
Not developer issue:  http://bugs.php.net/fix.php?id=38947r=support
Expected behavior:http://bugs.php.net/fix.php?id=38947r=notwrong
Not enough info:  
http://bugs.php.net/fix.php?id=38947r=notenoughinfo
Submitted twice:  
http://bugs.php.net/fix.php?id=38947r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=38947r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=38947r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=38947r=dst
IIS Stability:http://bugs.php.net/fix.php?id=38947r=isapi
Install GNU Sed:  http://bugs.php.net/fix.php?id=38947r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=38947r=float
No Zend Extensions:   http://bugs.php.net/fix.php?id=38947r=nozend
MySQL Configuration Error:http://bugs.php.net/fix.php?id=38947r=mysqlcfg


#38947 [Bgs]: Unable to extend mysqli class properly without causing various fatal errors

2006-09-25 Thread rk at yes-co dot nl
 ID:   38947
 User updated by:  rk at yes-co dot nl
 Reported By:  rk at yes-co dot nl
 Status:   Bogus
 Bug Type: MySQLi related
 Operating System: Debian
 PHP Version:  5.1.6
 New Comment:

I tried that first this is just a simple example of a more complex
issue, even when parent constructor is called problems arise


Previous Comments:


[2006-09-25 10:19:24] [EMAIL PROTECTED]

Parent constructor (parent::__construct()) must be called explicitly
when extending MySQLi.



[2006-09-25 10:14:05] rk at yes-co dot nl

Description:

Problem with extension of mysqli library.

Reproduce code:
---
?php
//loaded mysql via dl() function  
$server = 'localhost'; $dbname = 'ws_matching';  $username = 'root'; 
$password = '';  $port = 3306; $socket = '/tmp/mysql.sock';
class example_mysqli extends mysqli{
  function query($query){
$result = parent::query($query);
if(mysqli_error($this)){
  throw new exception(mysqli_error($this), mysqli_errno($this));
}
return $result;
  }
}
//$my = new mysqli($server,$username,$password,$dbname,$port,$socket);
//works properly
$my = new example_mysqli($server,$username,$password,
$dbname,$port,$socket);   //gives strange errors
$result = $my-query('SELECT * FROM housesnl_demand');
while($row = $result-fetch_row()){
  print_r($row);
}
$result-close();
$my-close();
?

Expected result:

Array ( [0] = 2006-09-25 12:09:58 )

Actual result:
--
possible fatal errors:

Fatal error: mysqli_stmt::data_seek() must be derived from
example_mysqli::data_seek in Unknown on line 0

Fatal error: mysqli_stmt::bind_param() must be derived from
example_mysqli::bind_param in Unknown on line 0


Warning: Wrong parameter count for mysqli_stmt::mysqli_stmt() in
/mnt/data/home/rob/public_html/MatchingRevised/strange_error_mysqli.php
on line 19


Fatal error: Call to undefined method mysqli_warning::query() in
/mnt/data/home/rob/public_html/MatchingRevised/strange_error_mysqli.php
on line 11

etc... error changes





-- 
Edit this bug report at http://bugs.php.net/?id=38947edit=1