English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

المetadata في MySQL

قد تود أن تعرف ثلاثة أنواع من معلومات MySQL التالية:

  • معلومات نتائج الاستعلام:عدد السجلات المتأثرة بتعليمات SELECT، UPDATE أو DELETE.

  • معلومات قاعدة البيانات وجداول البيانات:تتضمن بنية القاعدة البيانات وتنظيم جداول البيانات.

  • معلومات خادم MySQL:تتضمن حالة الخادم للقاعدة البيانات الحالية، رقم الإصدار، إلخ.

في واجهة إدخال أوامر MySQL، يمكننا الحصول بسهولة على معلومات الخادم المذكورة أعلاه. 但如果使用Perl或PHP等脚本语言,你就需要调用特定的接口函数来获取。 接下来我们会详细介绍。

获取查询语句影响的记录数

PERL 示例

在 DBI 脚本中, 语句影响的记录数通过函数 do() 或 execute() 返回:

# 方法 1
# 使用do() 执行 $query 
my $count = $dbh->do($query);
# 如果发生错误会输出 0
printf "%d 条数据被影响\n", (defined($count) ? $count : 0);
# 方法 2
# 使用prepare() 及 execute() 执行 $query 
my $sth = $dbh->prepare($query);
my $count = $sth->execute();
printf "%d 条数据被影响\n", (defined($count) ? $count : 0);

PHP 示例

在PHP中,你可以使用 mysqli_affected_rows() 函数来获取查询语句影响的记录数。

$result_id = mysqli_query($conn_id, $query);
# 如果查询失败返回 
$count = ($result_id ? mysqli_affected_rows($conn_id) : 0);
print "$count 条数据被影响\n";

数据库和数据表列表

你可以很容易地在MySQL服务器中获取数据库和数据表列表。 如果你没有足够的权限,结果将返回 null。

你也可以使用 SHOW TABLES 或 SHOW DATABASES 语句来获取数据库和数据表列表。

PERL 示例

# 获取当前数据库中所有可用的表。
my @tables = $dbh->tables();
foreach $table (@tables) {
   print "表名 $table\n";
}

PHP 示例

以下示例输出 MySQL 服务器上的所有数据库:

<?php
dbhost = 'localhost'; // mysql服务器主机地址
dbuser = 'root'; // mysql用户名
dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die('فشل الاتصال: ' . mysqli_error($conn));
}
// إعداد الترميز، لتجنب تشويه النصوص الصينية
$db_list = mysqli_query($conn, 'SHOW DATABASES');
while($db = mysqli_fetch_object($db_list))
{
  echo$db->Database."<br/>";
}
mysqli_close($conn);
?>

الحصول على metadata للخادم

يمكن استخدام الأوامر التالية في سطر الأوامر لـ MySQL، وكذلك في السكربت. الاستخدام، مثل سكربت PHP.

الأمرالوصف
SELECT VERSION( )معلومات إصدار الخادم
SELECT DATABASE( )اسم قاعدة البيانات الحالية (أو العودة فارغة)
SELECT USER( )اسم المستخدم الحالي
SHOW STATUSحالة الخادم
SHOW VARIABLESمستويات تكوين الخادم