zoukankan      html  css  js  c++  java
  • 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
    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    应用程序中的服务器错误,怎么解决
    日期格式
    怎样破解网页禁用鼠标右键
    web.config中配置页面出错后跳转指定错误页面
    无法复制文件
    jquery 上传图片即时预览功能
    jquery若干问题
    web.xml 中的listener、 filter、servlet 加载顺序及其详解
    使用jquery 对 radio 和 select 的各种操作.
    零散技术整理
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4616802.html
Copyright © 2011-2022 走看看