⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pdo_test.inc

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 INC
字号:
<?php# PDO test framework utilitiesif (getenv('PDOTEST_DSN') === false) {	$common = '';	$append = false;	foreach(file(dirname($_SERVER['PHP_SELF']).'/common.phpt') as $line) {		if ($append) {			$common .= $line;		} elseif (trim($line) == '--REDIRECTTEST--') {			$append = true;		}	}	$conf = eval($common);	foreach($conf['ENV'] as $n=>$v) putenv("$n=$v");}class PDOTest {	// create an instance of the PDO driver, based on	// the current environment	static function factory($classname = 'PDO') {		$dsn = getenv('PDOTEST_DSN');		$user = getenv('PDOTEST_USER');		$pass = getenv('PDOTEST_PASS');		$attr = getenv('PDOTEST_ATTR');		if (is_string($attr) && strlen($attr)) {			$attr = unserialize($attr);		} else {			$attr = null;		}		if ($user === false) $user = NULL;		if ($pass === false) $pass = NULL;				$db = new $classname($dsn, $user, $pass, $attr);		if (!$db) {			die("Could not create PDO object (DSN=$dsn, user=$user)\n");		}		// clean up any crufty test tables we might have left behind		// on a previous run		static $test_tables = array(			'test',			'test2',			'classtypes'			);		foreach ($test_tables as $table) {			$db->exec("DROP TABLE $table");		}				$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);		$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER);		$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true);		return $db;	}	static function skip() {		try {			$db = PDOTest::factory();		} catch (PDOException $e) {			die("skip " . $e->getMessage());		}	}	static function detect_transactional_mysql_engine($db) {		foreach ($db->query("show variables like 'have%'") as $row) {			if ($row[1] == 'YES' && ($row[0] == 'have_innodb' || $row[0] == 'have_bdb')) {				return str_replace("have_", "", $row[0]);			}		}		return false;	}	static function test_factory($file) {		$data = file_get_contents($file);		$data = preg_replace('/^.*--REDIRECTTEST--/s', '', $data);		$config = eval($data);		foreach ($config['ENV'] as $k => $v) {			putenv("$k=$v");		}		return self::factory();	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -