MySQLi 메타 데이터 얻기 및 사용

MySQLi에서 갖고 싶은 세 가지 정보가 있습니다.

  • Information about the result of queries − 여기에는 SELECT, UPDATE 또는 DELETE 문에 의해 영향을받는 레코드 수가 포함됩니다.

  • Information about tables and databases − 여기에는 테이블 및 데이터베이스 구조와 관련된 정보가 포함됩니다.

  • Information about the MySQLi server − 여기에는 데이터베이스 서버의 현재 상태, 버전 번호 등이 포함됩니다.

mysqli 프롬프트에서 이러한 모든 정보를 얻는 것은 매우 쉽지만 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에서 mysqli_affected_rows () 함수를 호출하여 쿼리가 변경된 행 수를 확인합니다.

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

테이블 및 데이터베이스 나열

데이터베이스 서버에서 사용할 수있는 모든 데이터베이스와 테이블을 나열하는 것은 매우 쉽습니다. 충분한 권한이 없으면 결과가 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
   $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();
?>

서버 메타 데이터 가져 오기

MySQL에는 mysql 프롬프트에서 실행하거나 PHP와 같은 스크립트를 사용하여 데이터베이스 서버에 대한 다양한 중요 정보를 얻을 수있는 다음 명령이 있습니다.

Sr. 아니. 명령 및 설명
1

SELECT VERSION( )

서버 버전 문자열

2

SELECT DATABASE( )

현재 데이터베이스 이름 (없으면 비어 있음)

SELECT USER( )

현재 사용자 이름

4

SHOW STATUS

서버 상태 표시기

5

SHOW VARIABLES

서버 구성 변수