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);
- }
- }
|