Annotation of embedaddon/php/ext/mysqli/tests/mysqli_select_db.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: mysqli_select_db()
! 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: require_once("table.inc");
! 13:
! 14: $tmp = NULL;
! 15: $link = NULL;
! 16:
! 17: if (!is_null($tmp = @mysqli_select_db()))
! 18: printf("[001] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 19:
! 20: if (!is_null($tmp = @mysqli_select_db($link)))
! 21: printf("[002] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 22:
! 23: if (!$link = my_mysqli_connect($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: if (!is_null($tmp = @mysqli_select_db($link, $db, "foo")))
! 28: printf("[004] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 29:
! 30: /* does not make too much sense, unless we have access to at least one more database than $db */
! 31: if (!mysqli_select_db($link, $db))
! 32: printf("[005] Cannot select DB %s, [%d] %s\n", $db, mysqli_errno($link), mysqli_error($link));
! 33:
! 34: if (!$res = mysqli_query($link, "SELECT DATABASE() AS dbname"))
! 35: printf("[006] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 36:
! 37: if (!$row = mysqli_fetch_assoc($res))
! 38: printf("[007] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 39:
! 40: if ($row['dbname'] !== (string)$db)
! 41: printf("[008] Expecting database '%s', found '%s'\n", $db, $row['dbname']);
! 42: mysqli_free_result($res);
! 43:
! 44: if (mysqli_select_db($link, 'mysql')) {
! 45: // Yippie, a second database to play with - that's great because mysqli_select_db
! 46: // ($db) was done by mysqli__connect() already and the previous test
! 47: // was quite useless
! 48: if (!$res = mysqli_query($link, "SELECT DATABASE() AS dbname"))
! 49: printf("[009] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 50:
! 51: if (!$row = mysqli_fetch_assoc($res))
! 52: printf("[010] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 53:
! 54: if (strtolower($row['dbname']) !== 'mysql')
! 55: printf("[011] Expecting database 'mysql', found '%s'\n", $row['dbname']);
! 56: mysqli_free_result($res);
! 57: }
! 58:
! 59: if (!$link->select_db($db))
! 60: printf("[012] Failed to set '%s' as current DB; [%d] %s\n", $link->errno, $link->error);
! 61:
! 62: if (!$res = mysqli_query($link, "SELECT DATABASE() AS dbname"))
! 63: printf("[013] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 64:
! 65: if (!$row = mysqli_fetch_assoc($res))
! 66: printf("[014] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 67:
! 68: $current_db = $row['dbname'];
! 69:
! 70: mysqli_report(MYSQLI_REPORT_OFF);
! 71: mysqli_select_db($link, 'I can not imagine that this database exists');
! 72: mysqli_report(MYSQLI_REPORT_ERROR);
! 73:
! 74: ob_start();
! 75: mysqli_select_db($link, 'I can not imagine that this database exists');
! 76: $output = ob_get_contents();
! 77: ob_end_clean();
! 78: if (!stristr($output, "1049") && !stristr($output, "1044") && !stristr($output, "1045")) {
! 79: /* Error: 1049 SQLSTATE: 42000 (ER_BAD_DB_ERROR) Message: Unknown database '%s' */
! 80: /* Error: 1044 SQLSTATE: 42000 (ER_DBACCESS_DENIED_ERROR) Message: Access denied for user '%s'@'%s' to database '%s' */
! 81: /* Error: 1045 SQLSTATE: 28000 (ER_ACCESS_DENIED_ERROR) Message: Access denied for user '%s'@'%s' (using password: %s) */
! 82: echo $output;
! 83: }
! 84:
! 85: if (!$res = mysqli_query($link, "SELECT DATABASE() AS dbname"))
! 86: printf("[015] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 87:
! 88: if (!$row = mysqli_fetch_assoc($res))
! 89: printf("[016] [%d] %s\n", mysqli_errno($link), mysqli_error($link));
! 90:
! 91: if (strtolower($row['dbname']) != strtolower($current_db))
! 92: printf("[017] Current DB should not change if set fails\n");
! 93:
! 94:
! 95: if (!$res = $link->query("SELECT id FROM test WHERE id = 1"))
! 96: printf("[018] [%d] %s\n");
! 97:
! 98: $row = $res->fetch_assoc();
! 99: $res->free();
! 100:
! 101: mysqli_close($link);
! 102:
! 103: if (NULL !== ($tmp = mysqli_select_db($link, $db)))
! 104: printf("[017] Expecting NULL, got %s/%s\n", gettype($tmp), $tmp);
! 105:
! 106: print "done!\n";
! 107: ?>
! 108: --CLEAN--
! 109: <?php require_once("clean_table.inc"); ?>
! 110: --EXPECTF--
! 111: Warning: mysqli_select_db(): Couldn't fetch mysqli in %s on line %d
! 112: done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>