【问题标题】:How to get the last created table name from database using php如何使用php从数据库中获取最后创建的表名
【发布时间】:2012-01-13 10:53:29
【问题描述】:

我想使用 PHP 从 MySQL 数据库中获取最后创建的表名。

我也使用了查询,但我无法获得任何值。这是查询:

"select table_name from information_schema.tables where table_schema = 'databse_name' order by create_time desc limit 1"

当我使用它时,我从本地系统获得价值,但没有从客户的数据库中获得价值。 我的查询有什么错误?

【问题讨论】:

    标签: php mysql information-schema


    【解决方案1】:

    如果我理解正确,您的查询在本地机器上运行良好,但在实时环境中却不行?

    可能是直播环境中的MySQL用户权限不足?尝试在实时环境 MySQL 数据库中执行类似的操作:

    GRANT SELECT ON information_schema.tables TO `user`@`localhost`
    

    并将user 替换为正确的用户名,如果您连接到本地主机之外的数据库,也可能是localhost 部分。

    【讨论】:

    • 你的意思是在执行获取表名查询之后首先执行这个查询?
    • 我应该在哪里执行这个查询?直接在 phpmyadmin 中还是从我的 php 页面?
    • 感谢它的工作。现在我从实时环境中获取最后创建的表名
    • 太棒了!为了澄清你应该只需要执行一次这个查询,例如在 phpmyadmin 中。
    【解决方案2】:

    您对要访问的数据库有权限吗?

    请试试这个:

    select create_time, table_name, table_schema 
    from information_schema.tables 
    where table_schema not in ('mysql')
    and table_schema not like '%_schema'  
    order by create_time desc 
    

    你有没有得到结果,如果你引用的数据库没有得到结果,那一定是权限。

    【讨论】:

    • 当我直接在 phpmyadmin 执行此查询时,我得到了结果
    • 结果中是否有您要查找的信息?如果是这样,只需使用 table_schema = 'your_database' 进行过滤,但这次将名称从结果中复制出来。在您第一次尝试时,我可能是一个错字。
    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多