mysqli_connect_oo_defaults.phpt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. --TEST--
  2. new mysqli()
  3. --SKIPIF--
  4. <?php
  5. require_once('skipif.inc');
  6. require_once('skipifemb.inc');
  7. require_once('skipifconnectfailure.inc');
  8. ?>
  9. --FILE--
  10. <?php
  11. require_once("connect.inc");
  12. $tmp = NULL;
  13. $link = NULL;
  14. if ($socket != "")
  15. /* mysqli.default_socket requires non-empty string */
  16. ini_set('mysqli.default_socket', 'socket');
  17. ini_set('mysqli.default_port', 9999);
  18. ini_set('mysqli.default_pw', 'password');
  19. ini_set('mysqli.default_user', 'user');
  20. ini_set('mysqli.default_host', 'host');
  21. mysqli_report(MYSQLI_REPORT_OFF);
  22. mysqli_report(MYSQLI_REPORT_STRICT);
  23. if ($socket != "") {
  24. ini_set('mysqli.default_socket', $socket);
  25. try {
  26. $mysqli = mysqli_init();
  27. $mysqli->real_connect($host, $user, $passwd, $db, $port);
  28. if (!$res = $mysqli->query("SELECT 'mysqli.default_socket' AS testing"))
  29. printf("[001] [%d] %s\n", $mysqli->errno, $mysqli->error);
  30. $tmp = $res->fetch_assoc();
  31. $res->free_result();
  32. if (!isset($tmp['testing']) || $tmp['testing'] != 'mysqli.default_socket') {
  33. printf("[002] mysqli.default_socket not properly set?\n");
  34. var_dump($tmp);
  35. }
  36. $mysqli->close();
  37. } catch (mysqli_sql_exception $e) {
  38. printf("%s\n", $e->getMessage());
  39. printf("[002] Usage of mysqli.default_socket failed\n");
  40. }
  41. }
  42. ini_set('mysqli.default_port', $port);
  43. try {
  44. $mysqli = mysqli_init();
  45. $mysqli->real_connect($host, $user, $passwd, $db);
  46. if (!$res = $mysqli->query("SELECT 'mysqli.default_port' AS testing"))
  47. printf("[003] [%d] %s\n", $mysqli->errno, $mysqli->error);
  48. var_dump($res->fetch_assoc());
  49. $res->free_result();
  50. $mysqli->close();
  51. } catch (mysqli_sql_exception $e) {
  52. printf("%s\n", $e->getMessage());
  53. printf("[004] Usage of mysqli.default_port failed\n");
  54. }
  55. ini_set('mysqli.default_pw', $passwd);
  56. try {
  57. $mysqli = mysqli_init();
  58. $mysqli->real_connect($host, $user);
  59. $mysqli->select_db($db);
  60. if (!$res = $mysqli->query("SELECT 'mysqli.default_pw' AS testing"))
  61. printf("[005] [%d] %s\n", $mysqli->errno, $mysqli->error);
  62. var_dump($res->fetch_assoc());
  63. $res->free_result();
  64. $mysqli->close();
  65. } catch (mysqli_sql_exception $e) {
  66. printf("%s\n", $e->getMessage());
  67. printf("[006] Usage of mysqli.default_pw failed\n");
  68. }
  69. ini_set('mysqli.default_user', $user);
  70. try {
  71. $mysqli = mysqli_init();
  72. $mysqli->real_connect($host);
  73. $mysqli->select_db($db);
  74. if (!$res = $mysqli->query("SELECT 'mysqli.default_user' AS testing"))
  75. printf("[007] [%d] %s\n", $mysqli->errno, $mysqli->error);
  76. var_dump($res->fetch_assoc());
  77. $res->free_result();
  78. $mysqli->close();
  79. } catch (mysqli_sql_exception $e) {
  80. printf("%s\n", $e->getMessage());
  81. printf("[008] Usage of mysqli.default_user failed\n");
  82. }
  83. ini_set('mysqli.default_host', $host);
  84. try {
  85. $mysqli = mysqli_init();
  86. $mysqli->real_connect();
  87. $mysqli->select_db($db);
  88. if (!$res = $mysqli->query("SELECT 1"))
  89. printf("[009] [%d] %s\n", $mysqli->errno, $mysqli->error);
  90. $res->free_result();
  91. if (!$res = $mysqli->query("SELECT SUBSTRING_INDEX(USER(),'@',1) AS username"))
  92. printf("[010] [%d] %s\n", $mysqli->errno, $mysqli->error);
  93. $tmp = $res->fetch_assoc();
  94. $res->free_result();
  95. if ($tmp['username'] !== $user)
  96. printf("[011] Expecting string/%s, got %s/%s\n", $user, gettype($tmp['username']), $tmp['username']);
  97. $mysqli->close();
  98. } catch (mysqli_sql_exception $e) {
  99. printf("%s\n", $e->getMessage());
  100. printf("[012] Usage of mysqli.default_host failed\n");
  101. }
  102. try {
  103. $link = mysqli_connect($host, $user, $passwd, null, ini_get('mysqli.default_port'));
  104. mysqli_select_db($link, $db);
  105. if (!$res = mysqli_query($link, "SELECT 'have been set' AS all_defaults"))
  106. printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  107. var_dump(mysqli_fetch_assoc($res));
  108. mysqli_free_result($res);
  109. mysqli_close($link);
  110. } catch (mysqli_sql_exception $e) {
  111. printf("%s\n", $e->getMessage());
  112. printf("[014] Usage of mysqli_connect() has failed\n");
  113. }
  114. try {
  115. $link = mysqli_connect($host, $user, $passwd, null);
  116. mysqli_select_db($link, $db);
  117. if (!$res = mysqli_query($link, "SELECT 'have been set' AS all_defaults"))
  118. printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
  119. var_dump(mysqli_fetch_assoc($res));
  120. mysqli_free_result($res);
  121. mysqli_close($link);
  122. } catch (mysqli_sql_exception $e) {
  123. printf("%s\n", $e->getMessage());
  124. printf("[016] Usage of mysqli_connect() has failed\n");
  125. }
  126. print "done!";
  127. ?>
  128. --EXPECTF--
  129. array(1) {
  130. [%u|b%"testing"]=>
  131. %unicode|string%(19) "mysqli.default_port"
  132. }
  133. array(1) {
  134. [%u|b%"testing"]=>
  135. %unicode|string%(17) "mysqli.default_pw"
  136. }
  137. array(1) {
  138. [%u|b%"testing"]=>
  139. %unicode|string%(19) "mysqli.default_user"
  140. }
  141. array(1) {
  142. [%u|b%"all_defaults"]=>
  143. %unicode|string%(13) "have been set"
  144. }
  145. array(1) {
  146. [%u|b%"all_defaults"]=>
  147. %unicode|string%(13) "have been set"
  148. }
  149. done!