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 engines') as $row) { if ($row[1] == 'YES' && ($row[0] == 'INNOBASE' || $row[0] == 'BDB')) { return $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(); } } ?>