這篇文章主要介紹了調用MySQL中數據庫元數據的方法,文中給出了了PHP和Perl腳本下的調用示例,需要的朋友可以參考下
MySQL的三個信息:
查詢的結果有關的信息: 這包括由任何SELECT,UPDATE或DELETE語句產生數量的記錄。
表和數據庫有關的信息: 這包括表和數據庫的結構有關的信息。
MySQL服務器的信息: 這包括當前狀態的數據庫服務器,版本號等。
在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");
表和數據庫清單(列表):
很容易列出了所有與數據庫服務器的數據庫和表。如果沒有足夠的權限結果可能是空的。
除了方法,我剛才提到下面可以使用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,數據庫服務器獲取各種重要信息。
新聞熱點
疑難解答