利用mysql和mysqli取得mysql的所有数据库和库中的所有表

功能:利用mysql和mysqli两种连接数据库的方法,取得Mysql服务器上的所有数据库和库中的所有表。

环境:自己用分开安装apache mysql php搭建的环境

操作系统是:windows 10

代码如下:

<?php/** * mysqli  op mysql demo *//** * 公用函数 */

/** * 功能:列出一个数据库的所有表 * @param $dbname * @param $con */function list_tables($dbname,$con)    {        mysql_select_db($dbname,$con) or die("选择数据库失败!");        $res = mysql_query("SHOW TABLES");

        $tables = array();

        while($row = mysql_fetch_array($res))        {            echo  $row[0] .‘<br>‘;        }        mysql_free_result($res);

//    return $tables;

    }

/** * 利用msyql方法取得所有库的名字 */$mysqlCon = mysql_connect(‘localhost‘,‘root‘,‘2015‘);$set = mysql_query(‘SHOW DATABASES;‘);$dbs = array();while($db = mysql_fetch_row($set))    $dbs[] = $db[0];

//var_dump($dbs);echo ‘<h1>这个是mysql操作输出的结果:</h1>‘;//print_r($dbs);

/** * 这个用来显示数据库名称 */foreach($dbs as $key=>$value){   echo ‘<b>‘.$key . "=>". $value .‘</b><br>‘;    list_tables($value,$mysqlCon);

}

echo ‘<h1>这个是msyqli操作输出的结果:</h1>‘;$mysqliCon = mysqli_connect(‘localhost‘,‘root‘,‘2015‘);$result = mysqli_query($mysqliCon,‘show databases‘);$dbs2 =array();while($db =mysqli_fetch_row($result))        $dbs2[] = $db[0];print_r($dbs2);

结果如下:

这个是mysql操作输出的结果:

0=>information_schema
CHARACTER_SETS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS
COLUMN_PRIVILEGES
ENGINES
EVENTS
FILES
GLOBAL_STATUS
GLOBAL_VARIABLES
KEY_COLUMN_USAGE
PARAMETERS
PARTITIONS
PLUGINS
PROCESSLIST
PROFILING
REFERENTIAL_CONSTRAINTS
ROUTINES
SCHEMATA
SCHEMA_PRIVILEGES
SESSION_STATUS
SESSION_VARIABLES
STATISTICS
TABLES
TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
USER_PRIVILEGES
VIEWS
INNODB_BUFFER_PAGE
INNODB_TRX
INNODB_BUFFER_POOL_STATS
INNODB_LOCK_WAITS
INNODB_CMPMEM
INNODB_CMP
INNODB_LOCKS
INNODB_CMPMEM_RESET
INNODB_CMP_RESET
INNODB_BUFFER_PAGE_LRU
1=>access_control
collection
collection2permission
permission
signup
user
user2collection
2=>db_bcty365
tb_bb
tb_bbqb
tb_bbs
tb_bccd
tb_bccdjj
tb_city
tb_cjwt
tb_dd
tb_leaveword
tb_reply
tb_sjxz
tb_soft
tb_tell
tb_type
tb_type_big
tb_type_small
tb_user
tb_xlh
3=>db_nethard
tb_member
tb_upfile
tb_uptype
4=>db_reglog
tb_member
5=>mysql
columns_priv
db
event
func
general_log
help_category
help_keyword
help_relation
help_topic
host
ndb_binlog_index
plugin
proc
procs_priv
proxies_priv
servers
slow_log
tables_priv
time_zone
time_zone_leap_second
time_zone_name
time_zone_transition
time_zone_transition_type
user
6=>performance_schema
cond_instances
events_waits_current
events_waits_history
events_waits_history_long
events_waits_summary_by_instance
events_waits_summary_by_thread_by_event_name
events_waits_summary_global_by_event_name
file_instances
file_summary_by_event_name
file_summary_by_instance
mutex_instances
performance_timers
rwlock_instances
setup_consumers
setup_instruments
setup_timers
threads
7=>php_study
8=>phpbook
addressbook
9=>regi
member
10=>test
11=>world
city
country
countrylanguage

这个是msyqli操作输出的结果:

Array
(
   [0] => information_schema
   [1] => access_control
   [2] => db_bcty365
   [3] => db_nethard
   [4] => db_reglog
   [5] => mysql
   [6] => performance_schema
   [7] => php_study
   [8] => phpbook
   [9] => regi
   [10] => test
   [11] => world
)

时间: 2024-08-24 21:16:33

利用mysql和mysqli取得mysql的所有数据库和库中的所有表的相关文章

Linux 操作mysql数据库 创建库 导入、删除表

确保线上的运行数据库是不可避免的本人小白,因公司上线没有办法自己去整服务器,深刻体会到服务器大神的霸气,所以为了增加记忆,服务广大员友记录一下 linux mysql 忘记root的密码无法登陆进mysql 1.修改MySQL的配置文件/etc/my.conf在[mysqld]下面增加一行skip-grant-table; 2.修改配置文件后重启MySQL service mysqld restart 3.然后使用常规的命令进行登陆mysql mysql -u root -p 在提示输入密码的时

PHP 使用mysql 与 mysqli 连接Mysql数据库

代码很简单直接上了 <?php /** * @Author: HTL * @Email: [email protected] * @DateTime: 2015-05-14 16:00:08 * @Description: Description */ // 降低PHP默认的错误级别 // 只显示除禁用以外的所有错误 // 解决因为PHP5.3+版本太高而导致在使用mysql_connect时出现的弃用警告“Deprecated: mysql_connect(): The mysql exten

[Mysql]备份同库中一张表的历史记录 insert into ..select

需求 如今有个这么一个需求.mysql中有个表.数据增长的非常快.可是呢这个数据有效期也就是1个月,一个月曾经的记录不太重要了,可是又不能删除.为了保证这个表的查询速度,须要一个简单的备份表,把数据倒进去. 代码 于是我写了一个小脚本,用来做定时任务.把这个表某段时间的数据备份到备份表中.核心就是个简单的sql. 原始表radius 备份的表为 radius2015 #!/usr/bin/python2.7 # -*- coding: utf-8 -*- #python2.7x #authror

mysql 查找某值在库中的哪一个表那一个字段(半成品)

DROP PROCEDURE IF EXISTS `test3`; CREATE DEFINER = `root`@`localhost` PROCEDURE `test3`() BEGIN DECLARE tablename varchar(100); DECLARE columnname varchar(100); declare b int default 0; DECLARE cur CURSOR FOR select COLUMN_NAME,table_name from inform

mysql 如何将一个库的一个表的数据复制到另一个库中的一个表

insert   库2..表2   select   字段1,字段2   from   库1..表1 where 条件 https://www.cnblogs.com/banruo/archive/2010/09/07/1820285.html 如果 库 中没有这个表 Create table Table2 (Select * from Table1); https://blog.csdn.net/wangluo605/article/details/82289209 原文地址:https://

MySQL优化(1):Mysql架构

一.逻辑架构 MySQL也采用分层架构.插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存取相分离,这样就可以根据业务需求来选择适合的存储引擎. 1.层次结构 连接层 -- 业务逻辑处理层(处理sql)-- 数据存储引擎 -- 硬盘 (1)连接层 是一些客户端和连接服务,主要完成类似于连接处理.授权认证.及相关的安全方案.该层引入了连接池的概念,为通过认证安全接入的客户端提供线程.该层还可实现基于SSL的安全链接. (2)服务层 在处理底层数据前,在这一层对SQL进行分析.优化及执行内置

MySQL生产库中添加修改表字段引起主从崩溃的问题总结

上周末和开发人员对线上库中的部分表的在线DDL和update,这过程中出现了一些意料之外的问题,现将过程.分析和解决方案在这里总结一下 一. 需求背景: 要在如下表中添加字段(modified_at)并且更改默认值 table_name { baby_compbaby_comp_statusbaby_usrbaby_ad_userbaby_campbaby_ordbaby_acc_eva } 每张表执行如下操作ALTER TABLE `$table_name` ADD COLUMN `modif

【转】MYSQL数据库数据拆分之分库分表总结

http://wentao365.iteye.com/blog/1740691 数据存储演进思路一:单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到.数据存储演进思路二:单库多表随着用户数量的增加,user表的数据量会越来越大,当数据量达到一定程度的时候对user表的查询会渐渐的变慢,从而影响整个DB的性能.如果使用MySQL, 还有一个更严重的问题是,当需要添加一列的时候,mysql会锁表,期间所有的读写操作只能

Mysql (一)Mysql 在Linux系统安装

引言 现在因为项目的需要在搭建Mysql的集群,从最简单的开始,先安装一个Mysql 在linux系统下. 步骤: 第一步:安装: tar mysql-5.5.48-linux2.-x86_64.tar.gz Copy到指定的路径下: cp mysql-5.5.48-linux2.6-x86_64 /usr/local/mysql -r 添加系统mysql组合mysql用户: 执行命令:groupaddmysql和useradd -r -g mysql mysql 安装数据库: 进入安装mysq