2010-11-18 141 views
0

我在Google上看過,但我一直無法找到通過PHP顯示SQL表的最好,最簡單的方法。我是PHP和SQL的新手,所以我有點困惑。我到目前爲止,但我甚至不知道行如何工作。我只想顯示整個表格。什麼是通過PHP顯示SQL表的最佳方式?

<?php 
$dbname = 'my_db'; 

if (!mysql_connect('localhost', 'username', 'password')) { 
    echo 'Could not connect to mysql'; 
    exit; 
} 

$sql = "SHOW TABLES FROM $dbname"; 
$result = mysql_query($sql); 

if (!$result) { 
    echo "DB Error, could not list tables\n"; 
    echo 'MySQL Error: ' . mysql_error(); 
    exit; 
} 

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {*}\n"; 
} 

mysql_free_result($result); 
?> 
+1

您是否試圖顯示錶名或表的內容?另外,請注意,在這裏非常小心。如果您是「PHP和SQL的新手」,那麼您很可能會在代碼中的某處發現SQL注入漏洞。爲用戶提供所有表的名稱會使該漏洞更加廣泛。 – David 2010-11-18 14:04:09

回答

0

下面的代碼應該只顯示指定數據庫中的表名稱。

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {$row[0]}\n"; 
} 

如果你想查看每個表的內容,你將不得不做這樣的事情:

mysql_select_db($dbname); 
while ($row = mysql_fetch_row($result)) { 
    //echo "Table: {$row[0]}\n"; 

    $query = "SELECT * FROM $row[0]"; 
    $table = mysql_query($query); 

    echo "<table>"; 
    while($content = mysql_fetch_array($table)){ 
      echo "<tr>"; 
     foreach($content as $key => $value){ 
      echo "<td>" . $value . "</td>"; 
     } 
      echo "</tr>"; 
    } 
    echo "</table>"; 

} 
0

也許你要尋找的是DESCRIBEhttp://dev.mysql.com/doc/refman/5.0/en /describe.html這將給你的東西,如:

mysql> DESCRIBE City; 
+------------+----------+------+-----+---------+----------------+ 
| Field  | Type  | Null | Key | Default | Extra   | 
+------------+----------+------+-----+---------+----------------+ 
| Id   | int(11) | NO | PRI | NULL | auto_increment | 
| Name  | char(35) | NO |  |   |    | 
| Country | char(3) | NO | UNI |   |    | 
| District | char(20) | YES | MUL |   |    | 
| Population | int(11) | NO |  | 0  |    | 
+------------+----------+------+-----+---------+----------------+ 

如果更換代碼的這一單方面

while ($row = mysql_fetch_row($result)) { 
    echo "Table: {*}\n"; 
} 

通過

while ($row = mysql_fetch_row($result)) { 
    print_r($row); 
} 

你會更好地已瞭解什麼$row設置爲。

UPDATE

在另一方面,如果你只是想獲取你在某些表有所有的數據,您需要做的查詢是SELECThttp://dev.mysql.com/doc/refman/5.0/en/select.html這將是這樣的:

$sql = "SELECT * FROM table_name"; 
相關問題