Memperoleh dan Menggunakan Metadata MySQLi

Ada tiga informasi yang ingin Anda dapatkan dari MySQLi.

  • Information about the result of queries - Ini termasuk jumlah record yang dipengaruhi oleh pernyataan SELECT, UPDATE atau DELETE.

  • Information about tables and databases - Ini termasuk informasi yang berkaitan dengan struktur tabel dan database.

  • Information about the MySQLi server - Ini termasuk status server database saat ini, nomor versi, dll.

Sangat mudah untuk mendapatkan semua informasi ini pada prompt mysqli, tetapi saat menggunakan PERL atau PHP API, kita perlu memanggil berbagai API secara eksplisit untuk mendapatkan semua informasi ini. Bagian berikut akan menunjukkan kepada Anda bagaimana mendapatkan informasi ini.

Memperoleh Jumlah Baris yang Dipengaruhi oleh Kueri

Contoh PERL

Dalam skrip DBI, jumlah baris yang terpengaruh dikembalikan oleh do () atau oleh execution (), bergantung pada cara Anda mengeksekusi kueri -

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

Contoh PHP

Di PHP, aktifkan fungsi mysqli_affected_rows () untuk mengetahui berapa banyak baris yang diubah kueri -

$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");

Daftar Tabel dan Database

Ini sangat mudah untuk membuat daftar semua database dan tabel yang tersedia dengan server database. Hasil Anda mungkin nol jika Anda tidak memiliki cukup hak istimewa.

Terlepas dari metode yang saya sebutkan di bawah, Anda dapat menggunakan kueri SHOW TABLES atau SHOW DATABASES untuk mendapatkan daftar tabel atau database baik dalam PHP atau PERL.

Contoh PERL

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

Contoh 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();
?>

Mendapatkan Metadata Server

Ada perintah berikut di MySQL yang dapat dijalankan baik pada prompt mysql atau menggunakan script seperti PHP untuk mendapatkan berbagai informasi penting tentang server database.

Sr.No. Perintah & Deskripsi
1

SELECT VERSION( )

String versi server

2

SELECT DATABASE( )

Nama database saat ini (kosong jika tidak ada)

3

SELECT USER( )

Nama pengguna saat ini

4

SHOW STATUS

Indikator status server

5

SHOW VARIABLES

Variabel konfigurasi server