這篇文章主要介紹了調(diào)用MySQL中數(shù)據(jù)庫(kù)元數(shù)據(jù)的方法,文中給出了了PHP和Perl腳本下的調(diào)用示例,需要的朋友可以參考下
MySQL的三個(gè)信息:
查詢(xún)的結(jié)果有關(guān)的信息: 這包括由任何SELECT,UPDATE或DELETE語(yǔ)句產(chǎn)生數(shù)量的記錄。
表和數(shù)據(jù)庫(kù)有關(guān)的信息: 這包括表和數(shù)據(jù)庫(kù)的結(jié)構(gòu)有關(guān)的信息。
MySQL服務(wù)器的信息: 這包括當(dāng)前狀態(tài)的數(shù)據(jù)庫(kù)服務(wù)器,版本號(hào)等。
在mysql提示符下很容易獲得所有這些信息。但是,當(dāng)使用Perl或PHP的API,那么我們就需要顯式地調(diào)用各種API獲得所有這些信息。下面的部分將告訴你如何獲得這些信息。
獲取查詢(xún)所影響的行數(shù):
PERL 實(shí)例:
在DBI腳本中,受影響的行數(shù)由do()或execute()方法返回,這取決于如何執(zhí)行查詢(xún):
- # 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 實(shí)例:
在PHP中,調(diào)用mysql_affected_rows()函數(shù)找出多少行查詢(xún)改變:
- $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");
表和數(shù)據(jù)庫(kù)清單(列表):
很容易列出了所有與數(shù)據(jù)庫(kù)服務(wù)器的數(shù)據(jù)庫(kù)和表。如果沒(méi)有足夠的權(quán)限結(jié)果可能是空的。
除了方法,我剛才提到下面可以使用SHOW TABLES或SHOW DATABASES查詢(xún)的表或數(shù)據(jù)庫(kù)的列表,無(wú)論是在PHP或PERL。
PERL 實(shí)例:
- # Get all the tables available in current database.
- my @tables = $dbh->tables ( );
- foreach $table (@tables ){
- print "Table Name $table/n";
- }
PHP 實(shí)例:
- <?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);
- ?>
獲取服務(wù)器的元數(shù)據(jù):
在MySQL可以執(zhí)行下面的命令是mysql提示符下使用,或使用任何腳本,如PHP,數(shù)據(jù)庫(kù)服務(wù)器獲取各種重要信息。
新聞熱點(diǎn)
疑難解答
圖片精選