我用PHP创建了一个带表的数据库.我是通过以下方式完成的:
<?php
$db = new SQLiteDatabase("test.db");
unset($db);
$db = sqlite_open("test.db");
sqlite_query($db,"create table students (names char(255))");
sqlite_close($db);
?>
Run Code Online (Sandbox Code Playgroud)
从命令行执行我的PHP文件后:"php test.php"我在我的目录中得到一个名为"test.db"的新文件(这就是我想要的).在命令行中,我键入"sqlite3 test.db".这样我就进入了sqlite命令行会话.然后,使用sqlite3,我输入".tables"(我想检查新数据库是否包含它应该包含的表).结果我得到:
Error: file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)
所以,它不起作用.有人知道这个问题吗?预先感谢您的任何帮助.
小智 46
这是版本不匹配问题.
要使用PHP5和SQLite打开一个数据库,我们需要使用PDO和没有的sqlite_open()功能.如何打开或创建数据库的示例:
try
{
/*** connect to SQLite database ***/
$dbh = new PDO("sqlite:VPN0.sqlite");
echo "Handle has been created ...... <br><br>";
}
catch(PDOException $e)
{
echo $e->getMessage();
echo "<br><br>Database -- NOT -- loaded successfully .. ";
die( "<br><br>Query Closed !!! $error");
}
echo "Database loaded successfully ....";
Run Code Online (Sandbox Code Playgroud)
Ted*_* Xu 14
我遇到了同样的问题,使用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];
}
Run Code Online (Sandbox Code Playgroud)
小智 9
这很可能是php sqlite版本和你的独立sqlite可执行文件之间的版本不匹配.
请参阅:http://us3.php.net/manual/en/book.sqlite.php - 来自Andrew Paul Dickey的"用户贡献笔记".
为了快速解决方案,您可以安装和使用sqlite2独立可执行文件.
| 归档时间: |
|
| 查看次数: |
50005 次 |
| 最近记录: |