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<jon.ju@msn.com>
* @return object 返回一个数据链接对象
*/
function connectSqlite(){
// 设置数据库的位置
$db = "sqlite:".$_SERVER['DOCUMENT_ROOT']."/sqlite/web.db";
echo $_SERVER['DOCUMENT_ROOT']."/sqlite/web.db" . '<br />';
$user = "";
$pass = "";
$dbHandle = new PDO($db,$user,$pass);
echo 'Connected to database<br />';
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 '<br />共有<strong>' . count($result) . '</strong>条数据<br />';
echo '<table>';
echo '<tr><th>名称</th><th>地址</th></tr>';
foreach($result as $row){
echo '<tr>';
foreach($row as $key => $val){
echo '<td>';
echo $val;
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
}
$connect = connectSqlite();
insertSqlite($connect);
showSqlite($connect);
updateSqlite($connect);
showSqlite($connect);
deleteSqlite($connect);
showSqlite($connect);
$connect = NULL;
Pingback 引用通告: NetTuts上的PHP操作SQLite代码 | 潔靜精微
刚开始学习sqlite,你的文章很有帮助,谢谢~
呵呵,不客气:)
PHP5.3已经支持SQLite3了
哈哈,谢谢提醒。