我用PHP创建了一个带表的数据库.我是通过以下方式完成的:
从命令行执行我的PHP文件后:"php test.php"我在我的目录中得到一个名为"test.db"的新文件(这就是我想要的).在命令行中,我键入"sqlite3 test.db".这样我就进入了sqlite命令行会话.然后,使用sqlite3,我输入".tables"(我想检查新数据库是否包含它应该包含的表).结果我得到:
Error: file is encrypted or is not a database
所以,它不起作用.有人知道这个问题吗?预先感谢您的任何帮助.
这是版本不匹配问题.
要使用PHP5和SQLite打开一个数据库,我们需要使用PDO和没有的sqlite_open()
功能.如何打开或创建数据库的示例:
try { /*** connect to SQLite database ***/ $dbh = new PDO("sqlite:VPN0.sqlite"); echo "Handle has been created ......
"; } catch(PDOException $e) { echo $e->getMessage(); echo "
Database -- NOT -- loaded successfully .. "; die( "
Query Closed !!! $error"); } echo "Database loaded successfully ....";
我遇到了同样的问题,使用pdo而不是sqlite_open()
这个链接非常有用,这是我的代码片段,完美运行,希望它有所帮助
$dir = 'sqlite:YourPath/DBName.db'; $dbh = new PDO($dir) or die("cannot open the database"); $query = "SELECT * from dummy_table"; foreach ($dbh->query($query) as $row) { echo $row[0]; }
这很可能是php sqlite版本和你的独立sqlite可执行文件之间的版本不匹配.
请参阅:http://us3.php.net/manual/en/book.sqlite.php - 来自Andrew Paul Dickey的"用户贡献笔记".
为了快速解决方案,您可以安装和使用sqlite2独立可执行文件.