使用sqlite_open函数会自动创建一个无后缀名的数据库文件。请问和我用管理工具生成的DB3的SQLITE数据库文件有什么关系吗?

解决方案 »

  1.   

    sqlite_open — Opens an SQLite database and create the database if it does not exist
    说:如果不存在,会被创建,是不是这个原因呢?
      

  2.   

    这个函数如果没有db文件存在会创建个新文件,确实可以用。不过是个没有后缀名的文件。但是我用SQLITE管理工具生成的数据库文件是有后缀名的,db3。 我不清楚这2种数据库文件有什么区别?
    因为我目录里有一个test的无后缀名文件。是sqlite_open 自动创建的。
    还有一个test.db3.是我用sqlite管理工具生成的。但是当我把test.db3的后缀名删掉后程序就报错。
    Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in D:\xampp\htdocs\doctrine2\index.php on line 2
    说明这是的test这个文件不是sqlite_open 说认识的数据库文件。
      

  3.   

    后缀名 .db3 表示它是由 sqlite3 创建的
    所以你需要加载 php_sqlite3 扩展
    sqlite3 与 sqlite(一般指sqlite2)由于数据库内部完全不同,所以是不兼容的
    为了避免混淆,php5.3的php_sqlite3扩展,不提供分立的函数,必须与 php_pdo_sqlite 扩展联合使用sqlite 数据库文件不存在默认后缀,所以使用时必须将名字写全你出现
    Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in D:\xampp\htdocs\doctrine2\index.php on line 2
    表示你的数据库文件不是 SQLite2 的