programing

PHP를 사용하여 MySQL 데이터베이스 내의 모든 테이블을 표시하시겠습니까?

javamemo 2023. 10. 27. 21:39
반응형

PHP를 사용하여 MySQL 데이터베이스 내의 모든 테이블을 표시하시겠습니까?

데이터베이스에 있는 모든 테이블을 보여주려 합니다.나는 이것을 시도해 봤습니다.

$sql = "SHOW TABLES";
$result = $conn->query($sql);
$tables = $result->fetch_assoc();
foreach($tables as $tmp)
{
    echo "$tmp <br>";
}

하지만 제가 알고 있는 데이터베이스에는 테이블 이름이 2개밖에 없습니다.내가 뭘 잘못하고 있는 거지?

테이블을 구하는 방법

1. SHOW TABLES

mysql> USE test;
Database changed
mysql> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
| t3             |
+----------------+
3 rows in set (0.00 sec)

2. SHOW TABLES IN db_name

mysql> SHOW TABLES IN another_db;
+----------------------+
| Tables_in_another_db |
+----------------------+
| t3                   |
| t4                   |
| t5                   |
+----------------------+
3 rows in set (0.00 sec)

3. 정보 스키마 사용

mysql> SELECT TABLE_NAME
       FROM information_schema.TABLES
       WHERE TABLE_SCHEMA = 'another_db';
+------------+
| TABLE_NAME |
+------------+
| t3         |
| t4         |
| t5         |
+------------+
3 rows in set (0.02 sec)

OP로

1열만 가져오면 됩니다. 다음과 같이 수정합니다.

while ( $tables = $result->fetch_array())
{
    echo $tmp[0]."<br>";
}

그리고 내 생각에, 정보_schema가 더 나을 것 같습니다.SHOW TABLES

SELECT TABLE_NAME
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'your database name'

while ( $tables = $result->fetch_assoc())
{
    echo $tables['TABLE_NAME']."<br>";
}

시도해 보기:

SHOW TABLES FROM nameOfDatabase;

SHOW TABLE_NAME이 올바르지 않습니다.테이블 표시 시도

TD

SHOW TABLES는 지정된 데이터베이스의 비 임시 테이블만 나열합니다.

https://dev.mysql.com/doc/refman/5.0/en/show-tables.html

<?php
$dbname = 'mysql_dbname';
if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_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: {$row[0]}\n";
}
mysql_free_result($result);
?>
//Try This code is running perfectly !!!!!!!!!!


언급URL : https://stackoverflow.com/questions/20183553/show-all-tables-inside-a-mysql-database-using-php

반응형