- MySQLi 教程
- MySQLi - 首页
- MySQLi - 简介
- MySQLi - PHP语法
- MySQLi - 连接
- MySQLi - 创建数据库
- MySQLi - 删除数据库
- MySQLi - 选择数据库
- MySQLi - 创建表
- MySQLi - 删除表
- MySQLi - 插入查询
- MySQLi - 选择查询
- MySQLi - WHERE子句
- MySQLi - 更新查询
- MySQLi - 删除查询
- MySQLi - LIKE子句
- MySQLi - 排序结果
- MySQLi - 使用JOIN
- MySQLi - 处理NULL值
- 获取和使用MySQLi元数据
- MySQL
- MySQL - 安装
- MySQL - 管理
- MySQL - 数据类型
- MySQL - 正则表达式
- MySQL - 事务
- MySQL - ALTER命令
- MySQL - 索引
- MySQL - 临时表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 处理重复数据
- MySQLi有用资源
- MySQLi - 有用函数
- MySQLi - 快速指南
- MySQLi - 有用资源
- MySQLi - 讨论
MySQLi - 数据库信息
获取和使用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");
列出表和数据库
列出数据库服务器上所有可用数据库和表非常容易。如果您没有足够的权限,您的结果可能为null。
除了以下代码块中显示的方法外,您还可以使用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 |
SELECT VERSION( ) 服务器版本字符串 |
| 2 |
SELECT DATABASE( ) 当前数据库名称(如果没有则为空) |
| 3 |
SELECT USER( ) 当前用户名 |
| 4 |
SHOW STATUS 服务器状态指示器 |
| 5 |
SHOW VARIABLES 服务器配置变量 |
广告