2011-06-07 119 views
0

這是我在我的PHP源代碼中使用SQLite數據庫的源代碼。當我運行該腳本,它給我這個錯誤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); 
?> 

回答

0

的路徑該錯誤可能是路徑,這是由該行決定:

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

要解決這個你應該嘗試的

echo $db; 

然後將其與您的實際路徑進行比較 - 從那裏您應該可以調整您的字符串。

如果路徑仍然正確,請仔細檢查您的文件權限,並確保運行php進程的用戶可讀。

祝你好運!

+0

當我回聲$ db;它給了我這個錯誤在查詢錯誤msh:SQL邏輯錯誤或缺少數據庫,所以這個問題是什麼,我怎麼解決它? – 2011-06-07 06:08:25

+0

在echo $ db之後;行添加一個exit();所以腳本死了,希望它會打印出你正在爲這條路徑建立的字符串。你需要在第一個$ db =行之後的這些行。 – baraboom 2011-06-07 06:12:43

0

php將開始尋找相對於當前正在運行的文件來自的目錄的數據庫文件,所以諸如(「../../ databases/mydb.sq3」)的構造通常比使用絕對路徑或相對於DOCUMENT_ROOT的路徑,因爲這些可以隨意更改。

你的程序幾乎肯定沒有找到數據庫文件,在這種情況下,sqlite會創建一個新的空文件,當你嘗試使用數據庫時,會引發一個「找不到表」的錯誤。

找一個空白的「umber.db」出現在某個意想不到的地方,這會給你一些指示你出錯的地方。

+0

yes是在文件夾wamp/www中生成的emty數據庫名稱,我把數據庫的carch源代碼放在它裏面,但問題是一樣的,然後再次顯示相同的味精。 – 2011-06-07 07:13:50