答案:在pear中使用sqlite
介绍
sqlite是个用C语言编写的非常轻巧的数据库,只有一百多K,却可以支持最大2TB的数据库,而且官方称它的查询速度比mysql快。
安装
[在php4下]
到http://pecl4win.php.net/ext.php/php_sqlite.dll下载相应版本的php_sqlite.dll,把php_sqlite.dll复制到php根目录的extensions目录下,修改php.ini,在配置extension的地方加上一行:
extension=php_sqlite.dll
[在php5下]
在php.ini中添加几行:
extension=php_pdo.dll
extension=php_pdo_sqlite.dl
extension=php_sqlite.dll
[安装pear]
进入php根目录,双击go-pear.bat安装pear包
根据提示,按Enter或Y,按照默认的设置安装
重启apache,用phpinfo()查看是否加载了sqlite。
[sqlite下载]
http://www.sqlite.com.cn/Upfiles/source/sqlite-3_3_5.rar
测试
建一个数据库test.db,并创建一个test的表,插入一条语句,用sql查询输出该语句
[不使用pear连接sqlite]代码:
if(!function_exists('sqlite_open')) {
die('php不支持sqlite');
}
$db = sqlite_open('D:\test.db') or die('Cannot open database');
sqlite_query($db, 'DROP TABLE test IF EXISTS test; CREATE TABLE test(id INTEGER PRIMARY KEY, value TEXT); INSERT INTO test VALUES(1, \'sqlite是一个轻巧的数据库\');');
$res = sqlite_query($db, 'SELECT value FROM test;');
while(($value = sqlite_fetch_single($res)) != false) {
echo $value;
}
sqlite_close($db);
?>
[使用pear连接sqlite]
用上面代码建好的test.db数据库或用sqlite.exe手动建,因为用pear建的数据库执行查询有问题。代码:
require_once 'DB.php';
$dsn = 'sqlite:///D:/test.db?mode=0666';
$options = array('portability' => DB_PORTABILITY_ALL);
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db)) {
die($db->getMessage());
} else {
//echo "连接sqlite数据库成功";
$res = $db->query('SELECT * FROM test;');
while(($row = $res->fetchRow()) != false) {
echo $row[1]."
";
}
$res->free();
$db->disconnect();
}
?>
用pear连接不同的数据库只要修改数据库类型和一些连接参数,代码在90%以上都是通用的,换到不同的数据库,基本上不需要,这是使用pear DB的好处。
php的pear扩展功能很多,也很强大,但一直找不到关于pear的教程,所以写了这篇文章。