Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 列出所有MySQL表并排除特定表_Php_Mysql - Fatal编程技术网

Php 列出所有MySQL表并排除特定表

Php 列出所有MySQL表并排除特定表,php,mysql,Php,Mysql,我尝试从数据库返回所有MySQL表,并排除特定的表,例如用户。我使用以下代码打印我的表名: function findTables() { global $conn; global $DB; $query = "SHOW TABLES FROM $DB "; $showTablesFromDb = mysqli_query($conn, $query); while($row = mysqli_fetch_row($showTablesFromDb))

我尝试从数据库返回所有MySQL表,并排除特定的表,例如用户。我使用以下代码打印我的表名:

function findTables() {
    global $conn;
    global $DB;

    $query = "SHOW TABLES FROM $DB ";
    $showTablesFromDb = mysqli_query($conn, $query);
    while($row = mysqli_fetch_row($showTablesFromDb)) {
        echo "<li><a href='admin.php?show={$row[0]}'>{$row[0]}</a></li>";
    }
}
解决办法是:

show tables where tables_in_$DB not like 'a%';
以下是一些演示:

mysql> show tables;
+-----------------+
| Tables_in_test3 |
+-----------------+
| a1              |
| t1              |
| t2              |
+-----------------+
3 rows in set (0.00 sec)

-- LIKE is simpler than NOT LIKE
mysql> show tables like 'a%';
+----------------------+
| Tables_in_test3 (a%) |
+----------------------+
| a1                   |
+----------------------+
1 row in set (0.00 sec)

-- `show tables not like 'a%'` is not working, 
-- use the following way for NOT LIKE matching
mysql> show tables where tables_in_test3 not like 'a%';
+-----------------+
| Tables_in_test3 |
+-----------------+
| t1              |
| t2              |
+-----------------+
2 rows in set (0.01 sec)

如果上述答案无效,请尝试以下方法:

SHOW TABLES FROM $DB WHERE Tables_in_$DB NOT LIKE 'foo'

您也可以通过创建一个包含您不需要的表的表来完成此操作,如下所示: 显示不在不允许的\u表中选择*的\u yourDBName中的表的表


不允许的\u表中的列的值是纯varchar。

您的问题是什么?上面的代码显示所有表及其优点,但在过程中,我希望从循环中排除一个特定的表-例如usersFair-但正确的查询是:'显示表,其中\u在\uu$DB中不象$database\u name'。无论如何,谢谢你给我一个提示——我把它标记为AcceptedHanks,我知道像“a%”这样的显示表是有效的,然后假设不喜欢也有效。当时他很匆忙。我刚刚更新了帖子,提供了更多信息和演示。