SQLite数据库路径无法正常工作

时间:2011-06-07 05:54:09

标签: sqlite

这是我在我的PHP源代码中使用SQLite数据库的源代码。当我运行脚本时,它会给我这个错误

Warning: sqlite_query() [function.sqlite-query]: no such table: 
books in D:\wamp\www\sqllite\index.php on line 13
Error in query: SQL logic error or missing database

我认为错误发生在数据库

的路径上
<?php
$db = $_SERVER['DOCUMENT_ROOT']."umer.db";  


$handle = sqlite_open($db) or die("Could not open database".sqlite_error_string(sqlite_last_error($handle)));

$query = "SELECT * FROM books";


$result = sqlite_query($handle, $query) or die("Error in query: ".sqlite_error_string(sqlite_last_error($handle)));
if (sqlite_num_rows($result) > 0) {

    echo "<table cellpadding=10 border=1>";
    while($row = sqlite_fetch_array($result)) {
        echo "<tr>";
        echo "<td>".$row[0]."</td>";
        echo "<td>".$row[1]."</td>";
        echo "<td>".$row[2]."</td>";
        echo "</tr>";
    }
    echo "</table>";
}


sqlite_close($handle);
?>

2 个答案:

答案 0 :(得分:1)

错误可能是路径,由此行决定:

$db = $_SERVER['DOCUMENT_ROOT']."umer.db";  

要解决此问题,您应该尝试

echo $db;

然后将其与您的实际路径进行比较 - 从那里您应该能够调整您的字符串。

如果路径仍然正确,请仔细检查您的文件权限,并确保运行php进程的用户可以读取它。

祝你好运!

答案 1 :(得分:0)

php将开始查找相对于当前运行文件来自的目录的数据库文件,因此像(“../../ databases / mydb.sq3”)这样的结构通常比使用绝对路径更便携或者相对于DOCUMENT_ROOT的路径,因为这些路径可以随心所欲地改变。

您的程序几乎肯定找不到数据库文件,在这些情况下,sqlite会创建一个新的空文件,并且在您尝试使用数据库时引发“找不到表”错误会导致很大的混淆。

找一个空的“umber.db”出现在意外的地方,这样可以告诉你哪里出错了。