MySQL 数据库信息
获取和使用MySQL元数据
你想从MySQL中获得三种类型的信息。
- 查询结果信息 - 包括任何SELECT、UPDATE或DELETE语句影响的记录数。
-
表和数据库信息 - 包括与表和数据库结构相关的信息。
-
MySQL服务器信息 - 包括数据库服务器的状态、版本号等。
在MySQL提示符下很容易获取所有这些信息,但在使用PERL或PHP API时,我们需要显式调用各种API来获取所有这些信息。
获取查询影响行数
现在我们来看如何获取这些信息。
PERL示例
在DBI脚本中,受影响行数由 do() 或 execute() 命令返回,具体取决于你如何执行查询。
# Method 1
# execute query using do( )
mycount = 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);
mycount = 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");
列出表格和数据库
非常容易列出数据库服务器上可用的所有数据库和表格。如果没有足够的权限,你的结果可能为空。
除了下面代码块中显示的方法外,你也可以在PHP或PERL中使用 SHOW TABLES 或 SHOW DATABASES 查询,以获得表格或数据库的列表。
PERL示例
# Get all the tables available in current database.
my @tables = dbh->tables ( );
foreachtable (@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 服务器配置变量 |