zoukankan      html  css  js  c++  java
  • PHP不能连接Sqlite3的解决办法

    目前,PHP还不支持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和ADOdb均是数据库抽象层.总的功能是可以实现连接多个数据库,特别适合一个程序中实现多个数据库.
    PDO支持数据库移植,如果你的部署将来有多种数据库,那就用它了.同时,PDO是C设计的,执行效率较高.他已经封装为PHP的扩展库组件了.运行快,效率高,我总结吧,还要安全一些,可以防SQL注入,初学,不知道有没有错.
    ADOdb是PHP类,是一个PHP文件,相对PDO来讲,运行效率较低,但支持性也较广泛,使用起来也简单方便.
    
    据说Adodb也支持Sqlite,不过,ADOdb也是基于PHP组件,那么肯定也不支持SQLite3了,所以PDO是解决这个问题的唯一办法.
    
    这里,表示一下茫然,Sqlite3出了有四年了吧,PHP5干什么吃的去了?
    
    然后记下PDO的下载地址,以及PDO与SQLite的连接方法:
    
    PDO下载地址:http://pecl.php.net/package/pdo
    PDO_Sqlite 函数及语法:http://cn.php.net/manual/en/ref.pdo-sqlite.php
    
    下载以后并行安装就可以了,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]";
    }
    ?>
  • 相关阅读:
    unigui1404在delphi10.2.2安装
    入库单的一些业务逻辑
    mormot日志
    论MORMOT序列的JSON格式
    线程安全的队列
    SynDBOracle.pas
    轻量级的REST中间件
    TQuery
    100亿数据1万属性数据架构设计
    愤怒的TryCatch
  • 原文地址:https://www.cnblogs.com/hun_dan/p/1968307.html
Copyright © 2011-2022 走看看