| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php/** * Sqlite 预定义了类 SQLiteDatabase 本实现没有使用。  * 这里使用的全部是过程函数。  * 无论是函数还是类,本实现只支持sqlite的2.x系列版本。  * php5.3新增扩展sqlite3用来支持3.x版本。  * PDO则同时支持2.x和3.x版本。 */class LtDbConnectionAdapterSqlite implements LtDbConnectionAdapter{	public function connect($connConf)	{		if (isset($connConf['pconnect']) && true == $connConf['pconnect'])		{			$func = 'sqlite_popen';		} 		else		{			$func = 'sqlite_open';		} 		$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']}");			}		}		$error = '';		$connResource = $func($connConf["host"] . $connConf["dbname"], 0666, $error);		if (!$connResource)		{			trigger_error($error, E_USER_ERROR);		} 		else		{			return $connResource;		} 	} 	public function exec($sql, $connResource)	{		if(empty($sql))		{			return 0;		}		sqlite_exec($connResource, $sql); 		// echo '<pre>';		// print_r(debug_backtrace());		// debug_print_backtrace();		// echo '</pre>';		// delete from table 结果为0,原因未知。		// 使用 delete from table where 1 能返回正确结果		return sqlite_changes($connResource);	} 	public function query($sql, $connResource)	{		$result = sqlite_query($connResource, $sql, SQLITE_ASSOC);		return sqlite_fetch_all($result, SQLITE_ASSOC);	} 	public function lastInsertId($connResource)	{		return sqlite_last_insert_rowid($connResource);	} 	public function escape($sql, $connResource)	{		return sqlite_escape_string($sql);	} } 
 |