19getlistof.phpt
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHPT 代码 · 共 209 行
PHPT
209 行
--TEST--DB_driver::getListOf--INI--error_reporting = 2047--SKIPIF--<?php chdir(dirname(__FILE__)); require_once './skipif.inc'; ?>--FILE--<?phprequire_once './mktable.inc';/* * An array with keys containing the $type to be passed to the getListOf() * method. The values of the main array are a sub-array that has keys * listing the phptype and dbsyntax of each driver and values of the * result expected from the combination of all these factors. */$tests = array( 'tables' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => 'array', 'ibase:ibase' => 'array', 'ibase:firebird' => 'array', 'ifx:ifx' => 'array', 'msql:msql' => 'array', 'mssql:mssql' => 'array', 'mysql:mysql' => 'array', 'mysqli:mysqli' => 'array', 'oci8:oci8' => 'array', 'odbc:access' => 'array', 'odbc:db2' => 'array', 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => 'array', 'sybase:sybase' => 'array', ), 'views' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => 'array', 'ibase:ibase' => 'array', 'ibase:firebird' => 'array', 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => 'array', 'mysql:mysql' => DB_ERROR_UNSUPPORTED, 'mysqli:mysqli' => DB_ERROR_UNSUPPORTED, 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => 'array', 'odbc:db2' => 'array', 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => 'array', ), 'users' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => 'array', 'ibase:ibase' => 'array', 'ibase:firebird' => 'array', 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => DB_ERROR_ACCESS_VIOLATION, 'mysqli:mysqli' => DB_ERROR_ACCESS_VIOLATION, 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => DB_ERROR_UNSUPPORTED, 'odbc:db2' => DB_ERROR_UNSUPPORTED, 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ), 'databases' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => DB_ERROR_UNSUPPORTED, 'ibase:ibase' => DB_ERROR_UNSUPPORTED, 'ibase:firebird' => DB_ERROR_UNSUPPORTED, 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => 'array', 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => 'array', 'mysqli:mysqli' => 'array', 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => 'array', 'odbc:db2' => 'array', 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ), 'functions' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => 'array', 'ibase:ibase' => DB_ERROR_UNSUPPORTED, 'ibase:firebird' => DB_ERROR_UNSUPPORTED, 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => DB_ERROR_UNSUPPORTED, 'mysqli:mysqli' => DB_ERROR_UNSUPPORTED, 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => DB_ERROR_UNSUPPORTED, 'odbc:db2' => DB_ERROR_UNSUPPORTED, 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ), 'procedures' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => 'array', 'ibase:ibase' => DB_ERROR_UNSUPPORTED, 'ibase:firebird' => DB_ERROR_UNSUPPORTED, 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => DB_ERROR_UNSUPPORTED, 'mysqli:mysqli' => DB_ERROR_UNSUPPORTED, 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => DB_ERROR_UNSUPPORTED, 'odbc:db2' => DB_ERROR_UNSUPPORTED, 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ), 'schema.tables' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => DB_ERROR_UNSUPPORTED, 'ibase:ibase' => DB_ERROR_UNSUPPORTED, 'ibase:firebird' => DB_ERROR_UNSUPPORTED, 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => DB_ERROR_UNSUPPORTED, 'mysqli:mysqli' => DB_ERROR_UNSUPPORTED, 'oci8:oci8' => DB_ERROR_UNSUPPORTED, 'odbc:access' => 'array', 'odbc:db2' => 'array', 'pgsql:pgsql' => 'array', 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ), 'synonyms' => array( 'dbase:dbase' => DB_ERROR_UNSUPPORTED, 'fbsql:fbsql' => DB_ERROR_UNSUPPORTED, 'ibase:ibase' => DB_ERROR_UNSUPPORTED, 'ibase:firebird' => DB_ERROR_UNSUPPORTED, 'ifx:ifx' => DB_ERROR_UNSUPPORTED, 'msql:msql' => DB_ERROR_UNSUPPORTED, 'mssql:mssql' => DB_ERROR_UNSUPPORTED, 'mysql:mysql' => DB_ERROR_UNSUPPORTED, 'mysqli:mysqli' => DB_ERROR_UNSUPPORTED, 'oci8:oci8' => 'array', 'odbc:access' => DB_ERROR_UNSUPPORTED, 'odbc:db2' => DB_ERROR_UNSUPPORTED, 'pgsql:pgsql' => DB_ERROR_UNSUPPORTED, 'sqlite:sqlite' => DB_ERROR_UNSUPPORTED, 'sybase:sybase' => DB_ERROR_UNSUPPORTED, ),);/** * Determine if the output from the driver matches what we expect * * If things are as we expect, nothing is printed out. * * If things go wrong, print "UNEXPECTED OUTCOME" and display * what happened. * * @param mixed $result the result from getListOf * @param mixed $expected the expected result * @param string $name the name of the current test * * @return void */function check_output($result, $expected, $name) { if (is_object($result)) { if ($result->getCode() !== $expected) { echo "UNEXPECTED OUTCOME FOR $name...\n"; echo $result->getDebugInfo() . "\n"; } } else { $type = gettype($result); if ($type != $expected) { if ($expected === DB_ERROR_ACCESS_VIOLATION && $type == 'array') { // This user has access to the mysql table. // Not a problem } else { echo "UNEXPECTED OUTCOME FOR $name...\n"; echo " Expected: $expected\n"; echo ' Result: '; print_r($result); echo "\n"; } } }}$dbh->setErrorHandling(PEAR_ERROR_RETURN);foreach ($tests as $test => $dbms) { check_output($dbh->getListOf($test), $dbms[$dbh->phptype . ':' . $dbh->dbsyntax], $test);}drop_table($dbh, 'phptest');?>--EXPECT--
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?