bug29311.phpt 1.1 KB

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