| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?phpclass LtDbConnectionAdapterPdo implements LtDbConnectionAdapter{	public function connect($connConf)	{		// $option = array(PDO::ATTR_PERSISTENT => 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), "'");	}}
 |