2012年6月7日星期四

PHP操作SQLITE3(转)

偶尔看到的,很有价值,可以作为参考,最吸引我的是Sqlite不用在客户端安装,或者做应用时在客户端不需要安装Sqlite软件,这样最大程度上方便的应用程序的分发。以下全文转过来,保留作者的博客信息。

------------------------------------------------------------------------------

http://julabs.me/blog/php/php-pdo-sqlite3/

 Sqlite是一个跨平台的软件,不需要安装或设置,只需在最终用户的系统上创建一个数据库文件就可以了,在平台和系统之间移植非常方便。由于它具有跨平台、规模小的特点,所以被很多公司使用,如MozillaAdobe,Symbian等。

这段时间我也打算学习下Sqlite,做一些简单的演示时非常方便,不用在最终用户的系统安装数据库环境了。但在利用PHP操作数据库时发现PHP默认只支持到Sqlite2,不支持最新版的Sqlite3。如果想支持Sqlite3就要使用PDO。要想使用PDO,需要在php.ini里面载入php_pdo.dllphp_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;

 摘自:http://wwling2001.blogbus.com/logs/161014072.html

没有评论: