bug29311.phpt 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. --TEST--
  2. Bug #29311 (Cannot override mysqli constructor)
  3. --EXTENSIONS--
  4. mysqli
  5. --SKIPIF--
  6. <?php
  7. require_once('skipifconnectfailure.inc');
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once("connect.inc");
  12. /* class 1 calls parent constructor */
  13. class mysql1 extends mysqli {
  14. function __construct() {
  15. global $host, $user, $passwd, $db, $port, $socket;
  16. parent::__construct($host, $user, $passwd, $db, $port, $socket);
  17. }
  18. }
  19. /* class 2 has an own constructor */
  20. class mysql2 extends mysqli {
  21. function __construct() {
  22. global $host, $user, $passwd, $db, $port, $socket;
  23. $this->connect($host, $user, $passwd, $db, $port, $socket);
  24. }
  25. }
  26. /* class 3 has no constructor */
  27. class mysql3 extends mysqli {
  28. }
  29. $foo[0] = new mysql1();
  30. $foo[1] = new mysql2();
  31. $foo[2] = new mysql3($host, $user, $passwd, $db, $port, $socket);
  32. for ($i=0; $i < 3; $i++) {
  33. if (($result = $foo[$i]->query("SELECT DATABASE()"))) {
  34. $row = $result->fetch_row();
  35. if ($row[0] != $db)
  36. printf("%d: %s\n", $i, $row[0]);
  37. $result->close();
  38. }
  39. $foo[$i]->close();
  40. }
  41. print "done!";
  42. ?>
  43. --EXPECT--
  44. done!