Search
  1. mysql_list_dbs〔MySQLサーバー上で利用可能なデータベースのリストを取得〕
  2. mysql_list_fields ※非推奨〔MySQLテーブル上のフィールドのリストを取得〕
  3. mysql_list_processes〔MySQLプロセスのリストを取得〕
  4. mysql_list_tables ※非推奨〔MySQLデータベース上のテーブルのリストを取得〕
  5. mysql_stat〔現在のサーバー情報を取得〕
  6. mysql_tablename ※非推奨〔フィールドのテーブル名取得〕

mysql_list_dbs
MySQLサーバー上で利用可能なデータベースのリストを取得

unknown

resource mysql_list_dbs ( [ resource 接続ID ] )

MySQLサーバー上で、利用可能なデータベースのリスト(一覧)を取得します。
成功した場合に結果ポインタ、失敗した場合にFALSEを返します。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

返り値の結果ポインタの中身を調べるには、mysql_db_name()関数、 取得したデータベースを利用するにはmysql_fetch_array()関数を使用します。

<?
$dbc=mysql_connect("localhost","root","");
$db_list=mysql_list_dbs($dbc);

/* mysql_db_name()関数を使ってデータベースのリストを取得する場合 */
$i=0;
$db_list_max=mysql_num_rows($db_list);
while ($i<$db_list_max){
    echo mysql_db_name($db_list,$i)."<br>\n";
    $i++;
}

/* mysql_fetch_object()関数を使ってデータベースのリストを取得する場合 */
$db_list=mysql_list_dbs($dbc);
while($dat=mysql_fetch_object($db_list)){
    echo $dat->Database."<br>\n";
}

/* 出力例
db_customer
mysql
sample
test
*/
?>

mysql_list_fields ※非推奨
MySQLテーブル上のフィールドのリストを取得

unknown

resource mysql_list_fields ( string $データベース名, string テーブル名[, resource 接続ID ] )

指定したテーブル名のフィールドのリスト(一覧)を取得します。
成功した場合に結果ポインタ、失敗した場合にFALSEを返します。

返り値のポインタは、mysql_field_flags()関数mysql_field_len()関数mysql_field_name()関数mysql_field_type()関数で使用可能です。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

この関数は非推奨です。 代わりにmysql_query()関数SHOW COLUMNS FROM テーブル名 [ LIKE '名前' ]文を発行し、テーブル名のフィールドのリストを取得することが推奨されています。

<?
/* 非推奨である mysql_list_fields() の代替例 */
$dbc=mysql_connect("localhost","root","");
mysql_select_db("db_customer");
$sql="SHOW COLUMNS FROM tbl_customer";
$res=mysql_query($sql,$dbc) or die("クエリ失敗 :".mysql_error());

if(mysql_num_rows($res)>0){
    while($dat=mysql_fetch_object($res)){
        echo $dat->Field."<br>";
    }
}
/* 出力例
id
firstname
lastname
age
*/
?>

mysql_list_processes
MySQLプロセスのリストを取得

unknown

resource mysql_list_processes ( [ resource 接続ID ] )

MySQLのプロセスのリスト(一覧)を取得します。
成功した場合に結果ポインタ、失敗した場合にFALSEを返します。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

<?
$dbc=mysql_connect("localhost","root","");
$res=mysql_list_processes($dbc);
while($dat=mysql_fetch_object($res)){
    printf("%s %s %s %s %s<br>\n",
        $dat->Id,
        $dat->Host,
        $dat->db,
        $dat->Command,
        $dat->Time
    );
}
mysql_free_result($res);
/* 出力例
2 localhost:1040 Sleep 6
42 localhost:3097 Processlist 0 
*/
?>

mysql_list_tables ※非推奨
MySQLデータベース上のテーブルのリストを取得

unknown

resource mysql_list_tables ( string $データベース名[, resource 接続ID ] )

MySQLデータベース上のテーブル名のリスト(一覧)を取得します。
成功した場合に結果ポインタ、失敗した場合にFALSEを返します。

返り値のポインタの中身を調べるには、mysql_tablename()関数、 取得したテーブルを利用するには、mysql_fetch_array()関数などを使用しましょう。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

この関数は非推奨です。 代わりにmysql_query()関数SHOW TABLES FROM [ データベースル名 ] [ LIKE 'パターン' ]文を発行し、データベース上のテーブルのリストを取得することが推奨されています。

<?
/* 例1: 非推奨である mysql_list_tables() の代替例 */
$dbname="db_customer";

$dbc=mysql_connect("localhost","root","") or die("MySQL接続失敗 :".mysql_error());
$sql="SHOW TABLES FROM ".$dbname;
$res=mysql_query($sql,$dbc);
if(!$res){
   echo "【データベースエラー】テーブルリストの取得に失敗しました<br>\n";
   echo "MySQL Error: ".mysql_error();
   exit;
}
while($dat=mysql_fetch_row($res)){
    echo "テーブル名: ".$dat[0]."<br>\n";
}
mysql_free_result($res);
/* 出力例
テーブル名: tbl_customer
テーブル名: tbl_address
*/
?>


<?
/* 例2: テーブル削除フォームの例 */
$dbc=mysql_connect("localhost","root","");
mysql_select_db("db_customer");
$res=mysql_list_tables("db_customer");
if(!$res){
   echo "【データベースエラー】テーブルリストの取得に失敗しました<br>\n";
   echo "MySQL Error: ".mysql_error();
   exit;
}
?>
<table border="1" width="100%">
    <tr>
        <th>テーブル名</th>
        <th>削除しますか?</th>
    </tr>
<?
while($dat=mysql_fetch_row($res)){
?>
    <tr>
        <td><?=$dat[0];?></td>
        <td><a href="<?=$PHP_SELF;?>?action=delete&tblname=<?=$dat[0];?>">Yes</a></td>
    </tr>
<?
}
?>
</table>
<?
if($action=="delete"){
    $sql_del=mysql_query("DROP TABLE ".$tblname);
    if($sql_del){
        echo "テーブル(".$tblname.")削除成功";
    }else{
        echo "テーブル(".$tblname.")削除失敗 :".mysql_error();
    }
}
?>

mysql_stat
現在のサーバー情報を取得

unknown

string mysql_stat ( [ resource 接続ID ] )

現在のMySQLサーバーの状態を取得します。

成功した場合に稼働時間、スレッド、クエリ、オープンされているテーブル、フラッシュされたた分、1秒当たりのクエリ数が文字列として返されます。 その他のデータも含めた状態を取得するには「SHOW VARIABLES文」を使用して下さい。

接続IDが不正な場合は、NULLが返ります。

オプションの第1引数接続IDが指定されていない場合は、mysql_connect()関数により直近に開かれた接続が使用されます。 接続が確立されていない場合は、引数を指定せずmysql_connect()関数がコールされた時と同様に接続を確立します。 それでも接続が確立できない場合は、E_WARNINGレベルのエラーが発生します。

<?
$dbc=mysql_connect("localhost","root","");
$status=explode('  ',mysql_stat($dbc));
print_r($status);
/* 出力例
Array
(
    [0] => Uptime: 15212
    [1] => Threads: 3
    [2] => Questions: 3203
    [3] => Slow queries: 0
    [4] => Opens: 13
    [5] => Flush tables: 1
    [6] => Open tables: 1
    [7] => Queries per second avg: 0.211
)
*/
?>


<?
/* SHOW VARIABLES文を使って、より詳細なサーバー情報を取得する例 */
$dbc=mysql_connect("localhost","root","");
$res=mysql_query('SHOW VARIABLES',$dbc);
while($dat=mysql_fetch_assoc($res)){
   echo $dat['Variable_name'].'='.$dat['Value']."<br>\n";
}
/* 出力例
back_log=50
basedir=C:\mysql\
binlog_cache_size=32768
bulk_insert_buffer_size=8388608
character_set=sjis
・・・(中略)・・・
version=4.0.26-nt
version_comment=Official MySQL binary
version_compile_os=Win32
wait_timeout=28800
*/
?>

mysql_tablename ※非推奨
フィールドのテーブル名取得

unknown

string mysql_tablename ( resource 結果, int $整数インデックス )

mysql_list_tables()関数より返された結果ポインタ及び整数インデックス(行/テーブル番号)を引数にとります。 成功した場合にテーブル名、失敗した場合にFALSEを返します。

結果ポインタの中身を調べるために、この関数を使用して取得したテーブルを利用するには、 mysql_fetch_array()関数などの関数を利用します。

この関数は非推奨です。 代わりにmysql_query()関数SHOW TABLES [ FROM データベース名 ] [ LIKE 'パターン' ]文を発行し、テーブル名を取得することが推奨されています。

<?
/* 例1: mysql_tablename() の使用例 */
$dbc=mysql_connect("localhost","root","");
$res=mysql_list_tables("db_customer");
$numRows=mysql_num_rows($res);
for($i=0$i<$numRows$i++){
    echo "テーブル名: ".mysql_tablename($res$i)."<br>\n";
}
/* 出力例
テーブル名: tbl_customer
*/
?>


<?
/* 例2: 非推奨である mysql_tablename() の代替例 */
/* SQL内部関数SHOW TABLESを使用して指定したテーブルの存在確認 */
$dbname="db_customer";

$dbc=mysql_connect("localhost","root","");
$res=mysql_query("SHOW TABLES FROM ".$dbname$dbc);
if(mysql_num_rows($res)>0){
    echo "テーブルは存在します<br>\n";
    //テーブルが存在するならテーブル名を取得
    $res=mysql_query("SHOW TABLES FROM ".$dbname$dbc);
    while($dat=mysql_fetch_assoc($res)){
        print_r($dat); echo "<br>";
    }
}else{
    echo "テーブルは存在しません<br>\n";
}
/* 出力例
Array ( [Tables_in_db_customer] => tbl_address )
Array ( [Tables_in_db_customer] => tbl_customer ) 
*/
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop