- 学习MySQL
- MySQL-主页
- MySQL - 简介
- MySQL-安装
- MySQL - 管理
- MySQL-PHP 语法
- MySQL-连接
- MySQL-创建数据库
- MySQL - 删除数据库
- MySQL - 选择数据库
- MySQL - 数据类型
- MySQL - 创建表
- MySQL - 删除表
- MySQL - 插入查询
- MySQL - 选择查询
- MySQL-Where 子句
- MySQL - 更新查询
- MySQL - 删除查询
- MySQL - Like 子句
- MySQL - 对结果进行排序
- MySQL - 使用连接
- MySQL - NULL 值
- MySQL - 正则表达式
- MySQL - 事务
- MySQL - 更改命令
- MySQL - 索引
- MySQL - 临时表
- MySQL - 克隆表
- MySQL - 数据库信息
- MySQL - 使用序列
- MySQL - 处理重复项
- MySQL - SQL 注入
- MySQL - 数据库导出
- MySQL - 数据库导入
- MySQL 有用资源
- MySQL - 有用的函数
- MySQL - 语句参考
- MySQL - 快速指南
- MySQL - 有用的资源
- MySQL - 讨论
MySQL - 数据库信息
获取和使用MySQL元数据
您希望从 MySQL 获得三种类型的信息。
有关查询结果的信息- 这包括受任何 SELECT、UPDATE 或 DELETE 语句影响的记录数。
有关表和数据库的信息- 这包括与表和数据库的结构有关的信息。
有关 MySQL 服务器的信息- 这包括数据库服务器的状态、版本号等。
在 MySQL 提示符下获取所有这些信息非常容易,但是在使用 PERL 或 PHP API 时,我们需要显式调用各种 API 来获取所有这些信息。
获取查询影响的行数
现在让我们看看如何获取此信息。
PERL 示例
在DBI 脚本中,受影响的行计数由do( )或execute( )命令返回,具体取决于执行查询的方式。
# Method 1 # execute $query using do( ) my $count = $dbh->do ($query); # report 0 rows if an error occurred printf "%d rows were affected\n", (defined ($count) ? $count : 0); # Method 2 # execute query using prepare( ) plus execute( ) my $sth = $dbh->prepare ($query); my $count = $sth->execute ( ); printf "%d rows were affected\n", (defined ($count) ? $count : 0);
PHP 示例
在 PHP 中,调用mysql_affected_rows( )函数来找出查询更改了多少行。
$result_id = mysql_query ($query, $conn_id); # report 0 rows if the query failed $count = ($result_id ? mysql_affected_rows ($conn_id) : 0); print ("$count rows were affected\n");
列出表和数据库
列出数据库服务器可用的所有数据库和表非常容易。如果您没有足够的权限,您的结果可能为空。
除了以下代码块中显示的方法之外,您还可以使用SHOW TABLES或SHOW DATABASES查询来获取 PHP 或 PERL 中的表或数据库的列表。
PERL 示例
# Get all the tables available in current database. my @tables = $dbh->tables ( ); foreach $table (@tables ){ print "Table Name $table\n"; }
PHP 示例
尝试以下示例来获取数据库信息 -
将以下示例复制并粘贴为 mysql_example.php -
<html> <head> <title>Getting MySQL Database Info</title> </head> <body> <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'root@123'; $dbname = 'TUTORIALS'; $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname); $tutorial_count = null; if($mysqli->connect_errno ) { printf("Connect failed: %s<br />", $mysqli->connect_error); exit(); } printf('Connected successfully.<br />'); if ($result = mysqli_query($mysqli, "SELECT DATABASE()")) { $row = mysqli_fetch_row($result); printf("Default database is %s<br />", $row[0]); mysqli_free_result($result); } $mysqli->close(); ?> </body> </html>
输出
访问部署在 apache Web 服务器上的 mysql_example.php 并验证输出。
Connected successfully. Default database is tutorials
获取服务器元数据
MySQL 中有一些重要的命令,可以在 MySQL 提示符下执行,也可以使用 PHP 等任何脚本来获取有关数据库服务器的各种重要信息。
先生。 | 命令与说明 |
---|---|
1 |
选择版本( ) 服务器版本字符串 |
2 |
选择数据库( ) 当前数据库名称(如果没有则为空) |
3 |
选择用户( ) 当前用户名 |
4 |
显示状态 服务器状态指示灯 |
5 |
显示变量 服务器配置变量 |