pdo_test.inc
来自「PHP v6.0 For Linux 运行环境:Win9X/ WinME/ Wi」· INC 代码 · 共 89 行
INC
89 行
<?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 + =
减小字号Ctrl + -
显示快捷键?