2013-02-04 373 views
1

我最近開始用PHP創建一個網站。我的大部分代碼正在工作,但是我發現了一個問題,我無法糾正。PHP「沒有選擇數據庫」

我有一個頁面,有很多的數據庫調用。在我的頁面頂部,我正在連接並使用SELECT來獲取關於相關產品的一些信息。

在頁面的底部,我再次連接獲取相關產品的評論。

我的代碼是非常漫長的,所以很難對我來說,在這裏展示,但此代碼的基礎如下:

PHP CODE 
    SELECT's 
    UPDATE's 

HTML 
    TABLE's 
    IMAGE's 
    ect... 

PHP 
    SELECT's 

我的代碼成功運行了我所有的代碼,當我第一次加載瞭然而,當我點擊一個按鈕來更新表格(在代碼的頂部)時,更新被處理,但頁面底部的評論部分帶來下面的錯誤:

「no database selected 「。

從頁面頂部和頁面底部的兩個選擇都連接到同一個數據庫和同一個表。另外,在單擊更新按鈕之前,帶回錯誤的註釋部分正常工作。

在我的代碼表示,錯誤發生的代碼是:

$commResult = mysql_query("SELECT u.id, u.USERNAME, c.COMMENT, c.DATE_ADDED, c.ACTIVE FROM USERS u, COMMENTS c WHERE c.box_id = $boxId ORDER BY c.DATE_ADDED DESC") or die (mysql_error());; 

while ($row = mysql_fetch_array($commResult)) 
{ 
    //Do processing here. 
} 

我連接到數據庫的代碼。這是在一個單獨的文件,我使用require_once(config.php);在我的代碼需要連接到數據庫的每一頁的頂部調用它。

$username = "user"; 
$password = "password"; 
$hostname = "localhost"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 

//select a database to work with 
$selected = mysql_select_db("databasename",$dbhandle) 
or die("Could not select databasename"); 
+0

向我們展示您選擇數據庫的代碼片段(通過'mysql_select_db'或原始查詢) – madfriend

+0

您的數據庫連接未建立,因此會給出錯誤。再次檢查您的連接。 –

+0

值得指出的是名爲'mysql_xxx()'的函數已被棄用,不推薦再使用。應該編寫新的PHP代碼以使用'mysqli_xxx()'函數或PDO庫。 – SDC

回答

3

我相信你可能會在腳本的頂部打開MySQL連接,關閉它並重新打開它,而不會忘記選擇數據庫。

如果您使用的是舊版mysql_功能(你真的不應該再被使用新代碼,看看MySQLiPDO),那麼你可能已經忘記了這行代碼:

mysql_select_db("databaseName"); 

或者,如果你使用「原始查詢」,你可能會丟失這條線:

mysql_query("USE databaseName"); 

雖然它可能不值得關閉數據庫連接相同的腳本,它可能是一個更好的主意,讓它貫穿整個劇本。

+0

我已更新我的問題以顯示我的連接代碼。我正在使用mysql_select_db()我想我正在使用mysql_close();在我的代碼在頁面的頂部某處。你認爲這是導致錯誤的原因嗎?只是調用mysql_close()會是安全的嗎?在所有腳本被調用後,在頁面的底部? –

+0

@GlenRobson找出你是否正在使用'mysql_close()'。如果你關閉了連接並且沒有正確地重新打開連接,那可能是問題所在。 –

+0

好吧,不好看看,回到你身邊。 –

1

您是否撥打mysql_select_db("Your Database Name")mysql_query("Your Database Name", "Query")

是的,你最好不要使用mysql,而是使用mysqli。

+0

我已更新我的問題。什麼是mysqli? –

+0

MySQLi - MySQL php擴展的改進版本。它比mysql更快更安全。 – Xazzzi