首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示来自MySQL数据库的php中的所有表名

显示来自MySQL数据库的php中的所有表名
EN

Stack Overflow用户
提问于 2012-03-28 06:26:05
回答 8查看 122.6K关注 0票数 10

好了,我是PHP和SQL/MySQL的新手,所以如果有任何帮助,我将非常感激。

我觉得我采取了正确的方法。我在php.net上搜索"MySQL显示所有表名“,它返回了一个不推荐使用的方法,并建议在SHOW TABLES [FROM db_name] [LIKE 'pattern']上使用MySQL查询。我不确定"pattern”是什么意思,但我搜索了“SQL通配符”,得到了"%“符号。根据我找到的所有东西,这应该是可行的,并在最后输出表名,但它不是。有什么建议吗?提前谢谢。

代码语言:javascript
复制
<?php
if ($_REQUEST["username"]=="coke"&&$_REQUEST["password"]=="pepsi"){
echo 'You have successfully logged in.';
echo '<br />';
echo 'These are your tables:';
echo '<br />';

   $link = mysql_connect("sql2.njit.edu", "username", "password");

   mysql_select_db("db_name") or die(mysql_error());

   $result = mysql_query('SHOW TABLES [FROM db_name] [LIKE '%']');
   echo $result;
}
else
echo 'You did not provide the proper authentication';
?>

我没有收到任何错误。输出就是回显的结果,但没有表名。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-03-28 06:32:24

代码中的方括号在mysql文档中用于表示可选参数组。它们不应该出现在实际的查询中。

您实际需要的唯一命令是:

代码语言:javascript
复制
show tables;

如果您想要来自特定数据库的表,假设数据库是“book”,那么它将是

代码语言:javascript
复制
show tables from books;

如果您想查找名称与特定模式匹配的表,则只需使用LIKE部分。例如,

代码语言:javascript
复制
show tables from books like '%book%';

将显示名称中某处包含"book“的表的名称。

此外,仅仅运行"show tables“查询将不会产生您可以看到的任何输出。SQL响应查询,然后将其传递给PHP,但您需要告诉PHP将其回显到页面。

因为听起来您对SQL非常陌生,所以我建议您从命令行运行mysql客户机(或者使用phpmyadmin,如果您的系统上安装了它的话)。这样,您就可以看到各种查询的结果,而不必使用PHP的发送查询和接收结果的函数。

如果你必须使用PHP,这里有一个非常简单的演示。在连接到您的数据库后尝试此代码:

代码语言:javascript
复制
$result = mysql_query("show tables"); // run the query and assign the result to $result
while($table = mysql_fetch_array($result)) { // go through each row that was returned in $result
    echo($table[0] . "<BR>");    // print the table that was returned on that row.
}
票数 45
EN

Stack Overflow用户

发布于 2013-05-04 17:47:46

对于使用PDO statements的用户

代码语言:javascript
复制
$query = $db->prepare('show tables');
$query->execute();

while($rows = $query->fetch(PDO::FETCH_ASSOC)){
     var_dump($rows);
}
票数 13
EN

Stack Overflow用户

发布于 2012-03-28 06:31:00

查询应如下所示:

代码语言:javascript
复制
SHOW TABLES

SHOW TABLES FROM mydatabase

SHOW TABLES FROM mydatabase LIKE "tab%"

方括号[]中的MySQL文档中的内容是可选的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9898610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档