true); if (isset($connConf['pconnect']) && true == $connConf['pconnect']) { $option[PDO::ATTR_PERSISTENT] = true; } else { $option[PDO::ATTR_PERSISTENT] = false; } switch ($connConf['adapter']) { case "pdo_mysql": $dsn = "mysql:host={$connConf['host']};dbname={$connConf['dbname']}"; break; case "pdo_sqlite": $connConf["host"] = rtrim($connConf["host"], '\\/') . DIRECTORY_SEPARATOR; if (!is_dir($connConf["host"])) { if (!@mkdir($connConf["host"], 0777, true)) { trigger_error("Can not create {$connConf['host']}"); } } $dsn = "{$connConf['sqlite_version']}:{$connConf['host']}{$connConf['dbname']}"; break; case "pdo_pgsql": $dsn = "pgsql:host={$connConf['host']} port={$connConf['port']} dbname={$connConf['dbname']} user={$connConf['username']} password={$connConf['password']}"; break; case "odbc": $dsn = "odbc:" . $connConf["host"]; break; } return new PDO($dsn, $connConf['username'], $connConf['password'], $option); } public function exec($sql, $connResource) { return $connResource->exec($sql); } public function query($sql, $connResource) { return $connResource->query($sql)->fetchAll(PDO::FETCH_ASSOC); } /** * * @todo pgsql support */ public function lastInsertId($connResource) { return $connResource->lastInsertId(); } public function escape($sql, $connResource) { // quote返回值带最前面和最后面的单引号, 这里去掉, DbHandler中加 return trim($connResource->quote($sql), "'"); } }