MySQL - ข้อมูลฐานข้อมูล

การรับและใช้ MySQL Metadata

มีข้อมูลสามประเภทที่คุณต้องการจาก MySQL

  • Information about the result of queries - รวมถึงจำนวนบันทึกที่ได้รับผลกระทบจากคำสั่ง SELECT, UPDATE หรือ DELETE

  • Information about the tables and databases - รวมถึงข้อมูลที่เกี่ยวข้องกับโครงสร้างของตารางและฐานข้อมูล

  • Information about the MySQL server - ซึ่งรวมถึงสถานะของเซิร์ฟเวอร์ฐานข้อมูลหมายเลขเวอร์ชัน ฯลฯ

มันง่ายมากที่จะรับข้อมูลทั้งหมดนี้ที่พรอมต์ MySQL แต่ในขณะที่ใช้ PERL หรือ PHP API เราจำเป็นต้องเรียก API ต่างๆอย่างชัดเจนเพื่อรับข้อมูลทั้งหมดนี้

การได้รับจำนวนแถวที่ได้รับผลกระทบจากการค้นหา

ตอนนี้มาดูวิธีการรับข้อมูลนี้

ตัวอย่าง PERL

ในสคริปต์ DBI จำนวนแถวที่ได้รับผลกระทบจะถูกส่งกลับโดย do( ) หรือโดย execute( ) คำสั่งขึ้นอยู่กับว่าคุณดำเนินการสืบค้นอย่างไร

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

ตัวอย่าง 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");

รายชื่อตารางและฐานข้อมูล

มันง่ายมากที่จะแสดงรายการฐานข้อมูลทั้งหมดและตารางที่มีอยู่ในเซิร์ฟเวอร์ฐานข้อมูล ผลลัพธ์ของคุณอาจเป็นnull หากคุณไม่มีสิทธิ์เพียงพอ

นอกเหนือจากวิธีการที่แสดงในบล็อกโค้ดต่อไปนี้คุณสามารถใช้ได้ SHOW TABLES หรือ SHOW DATABASES แบบสอบถามเพื่อรับรายการตารางหรือฐานข้อมูลทั้งใน PHP หรือใน PERL

ตัวอย่าง PERL

# Get all the tables available in current database.
my @tables = $dbh->tables ( );

foreach $table (@tables ){
   print "Table Name $table\n";
}

ตัวอย่าง PHP

<?php
   $con = mysql_connect("localhost", "userid", "password");
   
   if (!$con) {
      die('Could not connect: ' . mysql_error());
   }
   $db_list = mysql_list_dbs($con);

   while ($db = mysql_fetch_object($db_list)) {
      echo $db->Database . "<br />";
   }
   mysql_close($con);
?>

รับข้อมูลเมตาของเซิร์ฟเวอร์

มีคำสั่งที่สำคัญบางอย่างใน MySQL ซึ่งสามารถดำเนินการได้ที่พรอมต์ MySQL หรือโดยใช้สคริปต์ใด ๆ เช่น PHP เพื่อรับข้อมูลสำคัญต่างๆเกี่ยวกับเซิร์ฟเวอร์ฐานข้อมูล

ซีเนียร์ คำสั่งและคำอธิบาย
1

SELECT VERSION( )

สตริงเวอร์ชันเซิร์ฟเวอร์

2

SELECT DATABASE( )

ชื่อฐานข้อมูลปัจจุบัน (ว่างเปล่าถ้าไม่มี)

3

SELECT USER( )

ชื่อผู้ใช้ปัจจุบัน

4

SHOW STATUS

ตัวบ่งชี้สถานะเซิร์ฟเวอร์

5

SHOW VARIABLES

ตัวแปรการกำหนดค่าเซิร์ฟเวอร์