Βάση δεδομένων MySQLΠώς να ελέγξετε τις πληροφορίες δομής πίνακα δεδομένων κατάστασης και αριθμού έκδοσης;

MySQL Μεταδεδομένα

Ίσως θέλετε να μάθετε τα ακόλουθα τρία είδη πληροφοριών σχετικά με τη MySQL:

  • Πληροφορίες αποτελεσμάτων ερωτήματος: Ο αριθμός των εγγραφών που επηρεάζονται από τη δήλωση SELECT, UPDATE ή DELETE.
  • Πληροφορίες για βάσεις δεδομένων και πίνακες δεδομένων: Περιέχει τις πληροφορίες δομής της βάσης δεδομένων και του πίνακα δεδομένων.
  • Πληροφορίες διακομιστή MySQL: Περιέχει την τρέχουσα κατάσταση του διακομιστή βάσης δεδομένων, τον αριθμό έκδοσης κ.λπ.

Στη γραμμή εντολών MySQL, μπορούμε εύκολα να λάβουμε τις παραπάνω πληροφορίες διακομιστή.Αλλά αν χρησιμοποιείτε μια γλώσσα δέσμης ενεργειών όπως η Perl ή η PHP, πρέπει να καλέσετε μια συγκεκριμένη λειτουργία διεπαφής για να τη λάβετε.Στη συνέχεια θα παρουσιάσουμε αναλυτικά.


Λάβετε τον αριθμό των εγγραφών που επηρεάζονται από τη δήλωση ερωτήματος

Παράδειγμα PERL

Στα σενάρια DBI, ο αριθμός των εγγραφών που επηρεάζονται από τη δήλωση επιστρέφεται από τις συναρτήσεις do( ) or 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.Εάν δεν έχετε επαρκή δικαιώματα, το αποτέλεσμα θα επιστρέψει μηδενικό.
Μπορείτε επίσης να χρησιμοποιήσετε τη δήλωση SHOW TABLES ή SHOW DATBASES για να λάβετε μια λίστα με βάσεις δεδομένων και πίνακες δεδομένων.

Παράδειγμα PERL

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

Παράδειγμα PHP

Το ακόλουθο παράδειγμα εξάγει όλες τις βάσεις δεδομένων στον διακομιστή MySQL:

Προβολή όλων των βάσεων δεδομένων

<?
php
$dbhost = 'localhost:3306'; // 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);
?>

Λήψη μεταδεδομένων διακομιστή

Οι ακόλουθες δηλώσεις εντολών μπορούν να χρησιμοποιηθούν στη γραμμή εντολών MySQL ή σε σενάρια, όπως σενάρια PHP.

命令περιγραφή
ΕΠΙΛΟΓΗ ΕΚΔΟΣΗΣ( )Πληροφορίες έκδοσης διακομιστή
ΕΠΙΛΟΓΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ( )τρέχον όνομα βάσης δεδομένων (ή επιστροφή κενό)
ΕΠΙΛΟΓΗ ΧΡΗΣΤΗ( )τρέχον όνομα χρήστη
ΕΜΦΑΝΙΣΗ ΚΑΤΑΣΤΑΣΗΣκατάσταση διακομιστή
ΕΜΦΑΝΙΣΤΕ ΜΕΤΑΒΛΗΤΕΣΜεταβλητές διαμόρφωσης διακομιστή