如何使用PHP连接sqlite数据库?

时间:2011-04-01 13:11:30

标签: php sqlite pdo

我已尝试使用PHP PDO连接数据库。我有很多样品,我不确定是什么问题。

下面是我的代码

<?php
    try
    {
        // $db = new PDO('sqlite:sampleDB.db3');
        // $db = new SQLiteDatabase('sampleDB.sqlite', 0666, $error);  
        $db = new PDO('sqlite:sampleDB.sqlite');
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
?>

我已经尝试了很多方法来打开连接。请告诉我正确的方法......

3 个答案:

答案 0 :(得分:5)

我放弃了PDO驱动程序,并且出于同样的原因使用了sqlite3模块。

使用sqlite3模块:

class DB extends SQLite3
{
        function __construct( $file )
        {
            $this->open( $file );
        }
}

$db = new DB( 'sampleDB.sqlite' );

我知道这不是解决问题的方法,但如果没有其他方法可行,这可能会有用。

答案 1 :(得分:1)

首先,您需要确保已将PHP配置为连接到SQLite - 使用phpinfo()进行检查并确保已启用SQLite支持。

接下来,在尝试连接和查询SQLite数据库时,您将需要使用正确的语法。按照PHP Manual for sqllite例如

<?php

    if ($db = sqlite_open('sampleDB', 0666, $sqliteerror) ) { 
        $result = sqlite_query($db, 'select bar from foo');
        var_dump(sqlite_fetch_array($result) ); 
    } else {
        die($sqliteerror);
    }

?>

答案 2 :(得分:1)

sql文件所在的目录应该是服务器可写的。尝试为SQLite创建单独的目录并为其提供适当的访问权限。在Unix中,您可以通过运行chmod 777 dirname来实现。另外,将您的DSN修改为'sqlite:dirname/sampleDB.sqlite'