Annotation of embedaddon/php/ext/mysqli/tests/mysqli_real_connect_pconn.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_real_connect() - persistent connections
! 3: --SKIPIF--
! 4: <?php
! 5: require_once('skipif.inc');
! 6: require_once('skipifemb.inc');
! 7: require_once('skipifconnectfailure.inc');
! 8: require_once('connect.inc');
! 9: if (!$IS_MYSQLND)
! 10: die("skip mysqlnd only test");
! 11: ?>
! 12: --INI--
! 13: mysqli.allow_persistent=1
! 14: mysqli.max_persistent=10
! 15: --FILE--
! 16: <?php
! 17: require_once("connect.inc");
! 18: $host = 'p:' . $host;
! 19:
! 20: if (!$link = mysqli_init())
! 21: printf("[002] mysqli_init() failed\n");
! 22:
! 23: if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket))
! 24: printf("[003] Cannot connect to the server using host=%s, user=%s, passwd=***, dbname=%s, port=%s, socket=%s\n",
! 25: $host, $user, $db, $port, $socket);
! 26:
! 27: mysqli_close($link);
! 28: if (!$link = mysqli_init())
! 29: printf("[004] mysqli_init() failed\n");
! 30:
! 31: if (false !== ($tmp = mysqli_real_connect($link, $host, $user . 'unknown_really', $passwd . 'non_empty', $db, $port, $socket)))
! 32: printf("[005] Expecting boolean/false got %s/%s. Can connect to the server using host=%s, user=%s, passwd=***non_empty, dbname=%s, port=%s, socket=%s\n", gettype($tmp), $tmp, $host, $user . 'unknown_really', $db, $port, $socket);
! 33:
! 34: // Run the following tests without an anoynmous MySQL user and use a password for the test user!
! 35: ini_set('mysqli.default_socket', $socket);
! 36: if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port)) {
! 37: printf("[006] Usage of mysqli.default_socket failed\n");
! 38: } else {
! 39: mysqli_close($link);
! 40: if (!$link = mysqli_init())
! 41: printf("[007] mysqli_init() failed\n");
! 42: }
! 43:
! 44: ini_set('mysqli.default_port', $port);
! 45: if (!mysqli_real_connect($link, $host, $user, $passwd, $db)) {
! 46: printf("[008] Usage of mysqli.default_port failed\n");
! 47: } else {
! 48: mysqli_close($link);
! 49: if (!$link = mysqli_init())
! 50: printf("[009] mysqli_init() failed\n");
! 51: }
! 52:
! 53: ini_set('mysqli.default_pw', $passwd);
! 54: if (!mysqli_real_connect($link, $host, $user)) {
! 55: printf("[010] Usage of mysqli.default_pw failed\n") ;
! 56: } else {
! 57: mysqli_close($link);
! 58: if (!$link = mysqli_init())
! 59: printf("[011] mysqli_init() failed\n");
! 60: }
! 61:
! 62: ini_set('mysqli.default_user', $user);
! 63: if (!mysqli_real_connect($link, $host)) {
! 64: printf("[012] Usage of mysqli.default_user failed\n") ;
! 65: } else {
! 66: mysqli_close($link);
! 67: if (!$link = mysqli_init())
! 68: printf("[011] mysqli_init() failed\n");
! 69: }
! 70:
! 71: ini_set('mysqli.default_host', $host);
! 72: if (!mysqli_real_connect($link)) {
! 73: printf("[014] Usage of mysqli.default_host failed\n") ;
! 74: } else {
! 75: mysqli_close($link);
! 76: if (!$link = mysqli_init())
! 77: printf("[015] mysqli_init() failed\n");
! 78: }
! 79:
! 80: // CLIENT_MULTI_STATEMENTS - should be disabled silently
! 81: if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, 65536))
! 82: printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 83:
! 84: if ($res = mysqli_query($link, "SELECT 1 AS a; SELECT 2 AS b")) {
! 85: printf("[017] Should have failed. CLIENT_MULTI_STATEMENT should have been disabled.\n");
! 86: var_dump($res->num_rows);
! 87: mysqli_next_result($link);
! 88: $res = mysqli_store_result($link);
! 89: var_dump($res->num_rows);
! 90: }
! 91:
! 92:
! 93: mysqli_close($link);
! 94: if (!$link = mysqli_init())
! 95: printf("[018] mysqli_init() failed\n");
! 96:
! 97: if (ini_get('open_basedir')) {
! 98: // CLIENT_LOCAL_FILES should be blocked - but how to test it ?!
! 99:
! 100: if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, 128))
! 101: printf("[019] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 102:
! 103: $filename = sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'mysqli_real_connect_phpt';
! 104: if (!$fp = fopen($filename, 'w'))
! 105: printf("[020] Cannot open temporary file %s\n", $filename);
! 106:
! 107: fwrite($fp, '100;z');
! 108: fclose($fp);
! 109:
! 110: // how do we test if gets forbidden because of a missing right or the flag, this test is partly bogus ?
! 111: if (mysqli_query($link, "LOAD DATA LOCAL INFILE '$filename' INTO TABLE test FIELDS TERMINATED BY ';'"))
! 112: printf("[021] LOAD DATA INFILE should have been forbidden!\n");
! 113:
! 114: unlink($filename);
! 115: }
! 116:
! 117: mysqli_close($link);
! 118:
! 119: if ($IS_MYSQLND) {
! 120: $link = mysqli_init();
! 121: if (!@mysqli_real_connect($link)) {
! 122: printf("[022] Usage of mysqli.default_host=p:%s (persistent) failed\n", $host) ;
! 123: } else {
! 124: if (!$res = mysqli_query($link, "SELECT 'mysqli.default_host (persistent)' AS 'testing'"))
! 125: printf("[023] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 126: $tmp = mysqli_fetch_assoc($res);
! 127: if ($tmp['testing'] !== 'mysqli.default_host (persistent)') {
! 128: printf("[024] Result looks strange - check manually, [%d] %s\n",
! 129: mysqli_errno($link), mysqli_error($link));
! 130: var_dump($tmp);
! 131: }
! 132: mysqli_free_result($res);
! 133: mysqli_close($link);
! 134: }
! 135:
! 136: ini_set('mysqli.default_host', 'p:');
! 137: $link = mysqli_init();
! 138: if (@mysqli_real_connect($link)) {
! 139: printf("[025] Usage of mysqli.default_host=p: did not fail\n") ;
! 140: mysqli_close($link);
! 141: }
! 142: }
! 143:
! 144: if (NULL === ($tmp = mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket)))
! 145: printf("[026] Expecting not NULL, got %s/%s\n", gettype($tmp), $tmp);
! 146:
! 147: print "done!";
! 148: ?>
! 149: --CLEAN--
! 150: <?php
! 151: require_once("clean_table.inc");
! 152: ?>
! 153: --EXPECTF--
! 154: Warning: mysqli_real_connect(): (%d/%d): Access denied for user '%s'@'%s' (using password: YES) in %s on line %d
! 155: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>