sqlite_open — Opens an SQLite database and create the database if it does not exist 说:如果不存在,会被创建,是不是这个原因呢?
这个函数如果没有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 说认识的数据库文件。
后缀名 .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 的
说:如果不存在,会被创建,是不是这个原因呢?
因为我目录里有一个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 说认识的数据库文件。
所以你需要加载 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 的