偶尔看到的,很有价值,可以作为参考,最吸引我的是Sqlite不用在客户端安装,或者做应用时在客户端不需要安装Sqlite软件,这样最大程度上方便的应用程序的分发。以下全文转过来,保留作者的博客信息。
------------------------------------------------------------------------------
http://julabs.me/blog/php/php-pdo-sqlite3/
Sqlite是一个跨平台的软件,不需要安装或设置,只需在最终用户的系统上创建一个数据库文件就可以了,在平台和系统之间移植非常方便。由于它具有跨平台、规模小的特点,所以被很多公司使用,如Mozilla、Adobe,Symbian等。
这段时间我也打算学习下Sqlite,做一些简单的演示时非常方便,不用在最终用户的系统安装数据库环境了。但在利用PHP操作数据库时发现PHP默认只支持到Sqlite2,不支持最新版的Sqlite3。如果想支持Sqlite3就要使用PDO。要想使用PDO,需要在php.ini里面载入php_pdo.dll和php_pdo_sqlite.dll两个模块。如下:
extension=php_pdo.dll extension=php_pdo_sqlite.dll
如果这两段代码前面有;,就把它去掉。下面是我编写的Sqlite操作代码,一共有五个函数,分别是链接数据库、插入新数据、删除数据、更新数据和显示数据。
/** * 创建一个 sqlite3 链接 * @author Jon * @return object 返回一个数据链接对象 */ function connectSqlite(){ // 设置数据库的位置 $db = "sqlite:".$_SERVER['DOCUMENT_ROOT']."/sqlite/web.db"; echo $_SERVER['DOCUMENT_ROOT']."/sqlite/web.db" . '
'; $user = ""; $pass = ""; $dbHandle = new PDO($db,$user,$pass); echo 'Connected to database
'; return $dbHandle; } /** * 插入新数据 */ function insertSqlite($conn){ $qry = $conn->query('select * from site'); //如果不存在,则创建表 if($qry ==false){ $conn->exec('create table mysite(name VARCHAR(30),url VARCHAR(50))'); } // 准备存入数据 $insert = $conn->prepare("INSERT into mysite VALUES(?,?)"); // 存入数据 $insert->execute(array('julabs','julabe.com')); $insert->execute(array('google','www.google.com')); } /** * 删除数据 */ function deleteSqlite($conn){ $conn->exec("DELETE FROM mysite WHERE name = 'google'"); } /** * 更新数据 */ function updateSqlite($conn){ $conn->exec("UPDATE mysite set url='julabs.me' WHERE name = 'julabs'"); } /** * 显示数据 */ function showSqlite($conn){ $sth = $conn->prepare("SELECT * FROM mysite"); $sth->execute(); $result = $sth->fetchAll(PDO::FETCH_ASSOC); echo '
共有' . count($result) . '条数据
'; echo ''; echo''; foreach($resultas$row){ echo''; foreach($rowas$key => $val){ echo''; } echo''; } echo' 名称 地址 '; echo $val; echo '
'; } $connect = connectSqlite(); insertSqlite($connect); showSqlite($connect); updateSqlite($connect); showSqlite($connect); deleteSqlite($connect); showSqlite($connect); $connect = NULL;
没有评论:
发表评论