English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQLの以下の3つの情報について知りたいかもしれません:
クエリ結果情報:SELECT、UPDATEまたはDELETEステートメントが影響するレコード数。
データベースおよびデータテーブルの情報:データベースおよびデータテーブルの構造情報が含まれています。
MySQLサーバー情報:現在のデータベースサーバーの状態やバージョン番号などが含まれています。
MySQLのコマンドプロンプトでは、簡単に上記のサーバー情報を取得できます。 しかし、PerlやPHPなどのスクリプト言語を使用する場合、特定のインターフェース関数を呼び出す必要があります。 次に詳しく説明します。
DBIスクリプトでは、 do( )や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では、mysqli_affected_rows( )関数を使用してクエリが影響したレコード数を取得できます。
$result_id = mysqli_query ($conn_id, $query); # クエリが失敗した場合に返されます $count = ($result_id ? mysqli_affected_rows ($conn_id) : 0); print ("$count 件のデータが影響されました\n");
MySQLサーバーからデータベースとテーブルリストを簡単に取得できます。 十分な権限がない場合、結果はnullが返されます。
SHOW TABLESやSHOW DATABASES文を使用して、データベースとテーブルリストを取得することもできます。
# 現在のデータベース中のすべての利用可能なテーブルを取得。 my @tables = $dbh->tables ( ); foreach $table (@tables ){ print "テーブル名 $table\n"; }
以下の例は、MySQLサーバー上のすべてのデータベースの出力例です:
<?php $dbhost = 'localhost'; // 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 スクリプトなどの使用例。
コマンド | 説明 |
---|---|
SELECT VERSION( ) | サーバーバージョン情報 |
SELECT DATABASE( ) | 現在のデータベース名(または空に戻る) |
SELECT USER( ) | 現在のユーザー名 |
SHOW STATUS | サーバー状態 |
SHOW VARIABLES | サーバー設定変数 |