• 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    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    简识UML语言(转)
    很好的理解遗传算法的样例
    strtok和strtok_r
    HDU 11488 Hyper Prefix Sets (字符串-Trie树)
    深入浅出JMS(一)——JMS简单介绍
    CSS3学习----选择器、字体
    消息中间件的技术选型心得-RabbitMQ、ActiveMQ和ZeroMQ
    【LeetCode】Sum Root to Leaf Numbers
    选择用户-显示已选用户
    ajax异步通讯 遮罩滚动栏,防止并发及误操作
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4616802.html
Copyright © 2020-2023  润新知