Lấy và sử dụng siêu dữ liệu MySQLi

Có ba thông tin mà bạn muốn có từ MySQLi.

  • Information about the result of queries - Điều này bao gồm số lượng bản ghi bị ảnh hưởng bởi bất kỳ câu lệnh SELECT, UPDATE hoặc DELETE nào.

  • Information about tables and databases - Điều này bao gồm thông tin liên quan đến cấu trúc của bảng và cơ sở dữ liệu.

  • Information about the MySQLi server - Điều này bao gồm trạng thái hiện tại của máy chủ cơ sở dữ liệu, số phiên bản, v.v.

Rất dễ dàng nhận được tất cả những thông tin này tại dấu nhắc mysqli, nhưng trong khi sử dụng API PERL hoặc PHP, chúng tôi cần gọi các API khác nhau một cách rõ ràng để có được tất cả những thông tin này. Phần sau sẽ chỉ cho bạn cách lấy thông tin này.

Lấy số lượng hàng bị ảnh hưởng bởi một truy vấn

Ví dụ về PERL

Trong tập lệnh DBI, số hàng bị ảnh hưởng được trả về bởi do () hoặc bởi execute (), tùy thuộc vào cách bạn thực hiện truy vấn -

# 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);

Ví dụ PHP

Trong PHP, gọi hàm mysqli_affected_rows () để tìm xem truy vấn đã thay đổi bao nhiêu hàng -

$result_id = mysqli_query ($query, $conn_id);
# report 0 rows if the query failed
$count = ($result_id ? mysqli_affected_rows ($conn_id) : 0);
print ("$count rows were affected\n");

Bảng liệt kê và Cơ sở dữ liệu

Điều này rất dễ dàng để liệt kê tất cả các cơ sở dữ liệu và bảng có sẵn với máy chủ cơ sở dữ liệu. Kết quả của bạn có thể vô hiệu nếu bạn không có đủ đặc quyền.

Ngoài phương pháp tôi đã đề cập bên dưới, bạn có thể sử dụng truy vấn SHOW TABLES hoặc SHOW DATABASES để nhận danh sách các bảng hoặc cơ sở dữ liệu trong PHP hoặc trong PERL.

Ví dụ về PERL

# Get all the tables available in current database.
my @tables = $dbh->tables ( );
foreach $table (@tables ){
   print "Table Name $table\n";
}

Ví dụ PHP

<?php
   $servername = "localhost:3306";
   $username = "root";
   $password = "";
   $dbname = "TUTORIALS";
   $conn = new mysqli($servername, $username, $password, $dbname);
   
   if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
   } 
   echo"Database connected";
   $sql="SHOW DATABASES";
   
   if (!($result = mysqli_query($conn,$sql))) {
      printf("Error: %s\n", mysqli_error($conn));
   }
   while( $row = mysqli_fetch_row( $result ) ){
      if (($row[0]!="information_schema") && ($row[0]!="mysql")) {
         echo $row[0]."\r\n";
      }
   }
   $conn->close();
?>

Nhận siêu dữ liệu máy chủ

Có các lệnh sau trong MySQL có thể được thực thi tại dấu nhắc mysql hoặc sử dụng bất kỳ tập lệnh nào như PHP để nhận các thông tin quan trọng khác nhau về máy chủ cơ sở dữ liệu.

Sr.No. Lệnh & Mô tả
1

SELECT VERSION( )

Chuỗi phiên bản máy chủ

2

SELECT DATABASE( )

Tên cơ sở dữ liệu hiện tại (trống nếu không có)

3

SELECT USER( )

Tên người dùng hiện tại

4

SHOW STATUS

Chỉ báo trạng thái máy chủ

5

SHOW VARIABLES

Biến cấu hình máy chủ