2010-09-08 73 views
0

我目前正在嘗試創建一個PHP腳本,其中已經創建了一個登錄腳本,並且成功登錄到home.php的用戶能夠查看他登錄到的數據庫的表。如何使用PHP會話查看MYsql數據庫表?

是否有任何方式使用mySQL查詢像「SHOW TABLES」檢索表?

下面是我的一些代碼:

<?php 
session_start(); 
if($_SESSION['id']) 
{ 
    echo "Welcome ",$_SESSION['username']."<br>"; 
    echo "Click here to Logout : ".'<br><a href="logout.php">Logout</a>'; 
} 
else 
{ 
    echo "You don't belong here!"; 
} 



$tableSQL = "SHOW TABLES"; 

$tablesoutput = mysql_query($tableSQL); 

print $tablesoutput; 

>

我想,有數字顯示被拒絕的數據庫訪問錯誤我的代碼是錯誤的?這是否意味着我必須重新連接到數據庫,即使我已建立會話?

回答

0

一個會話只意味着存儲在$_SESSION變量中的值在不同的請求中被持久化,但僅此而已。它不會「將用戶登錄到數據庫中」,也不會打開數據庫連接。您必須在每次加載頁面時建立數據庫連接。

mysql_query的結果還需要使用mysql_fetch_assoc。簡單的print是不夠的。

+0

而不是使用取,我也可以用mysql_result的? – JavaNoob 2010-09-08 08:20:09

+0

@Java當然,如果你願意。你只需要*更專門用來處理MySQL結果的東西,'print'是不能做的。 – deceze 2010-09-08 08:23:53

0

每次執行skript時都需要連接到數據庫。會話與您的數據庫連接無關。

1

修改如下,以滿足您的要求:

<?php 

$conn = mysql_connect("localhost","foo_dbo","pass") or die("Database error"); 

mysql_select_db("foo_db", $conn); 

$result = mysql_query("show tables"); 

if(!$result) die("Invalid query: " . mysql_error()); 

while ($row = mysql_fetch_array($result)){ 
    echo $row[0], "<br/>"; 
    //do stuff with the table names 
} 

mysql_free_result($result); 
mysql_close($conn); 

?> 
+0

增加答案的用處!謝謝! – JavaNoob 2010-09-08 09:20:13

相關問題