PHP不能连接Sqlite3的解决办法:PDO

目前,PHP5.3以前的版本还不能直接支持Sqlite3,即不支持DB3后缀的Sqlite数据库文件.使用PHP连接Sqlite3时会报错,以下为一个解决办法:

If you get an error message:
Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database
then most probably your code is accessing a SQLite3 database.
sqlite_open() only supports SQLite2. Use PDO to access SQLite3.

目前找到的解决办法是使用PDO即可连接Sqlite3.

PDO和ADOdb均是数据库抽象层.总的功能是可以实现连接多个数据库,特别适合一个程序中实现多个数据库.

PDO支持数据库移植,如果你的部署将来有多种数据库,那就用它了.同时,PDO是C设计的,执行效率较高.他已经封装为PHP的扩展库组件了.运行快,效率高,我总结吧,还要安全一些,可以防SQL注入,初学,不知道有没有错.

ADOdb是PHP类,是一个PHP文件,相对PDO来讲,运行效率较低,但支持性也较广泛,使用起来也简单方便.

据说Adodb也支持Sqlite,不过,ADOdb也是基于PHP的组件,那么肯定也不支持SQLite3了,所以PDO是解决这个问题的唯一办法.当然,使用php5.3或者更高版本可以直接解决问题。

然后记下PDO的下载地址,以及PDO与SQLite的连接方法:

下载以后并行安装就可以了,PHP5.1已经内置了PDO的相关组件,我们要做的就是打开PHP.ini把PDO和PDO_sqlite启用了。

extension=php_pdo.dll
extension=php_pdo_sqlite.dll

启用PDO和PDO_dqlite以后,我就开始写一段测试代码,拷了一个任务数据库到程序目录中以备测试.

<?
    $dbh = new PDO('sqlite:spiderresult.db');
    if ($dbh){
        echo 'OK';
    }else{
        echo 'Err';
    }

    foreach ($dbh->query('SELECT id FROM content limit 10;') as $row){
        echo $row[0];
    }
?>
View Code

转载于:https://www.cnblogs.com/zhaiqianfeng/archive/2012/07/10/4616802.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值