:: Anbieterverzeichnis :: Globale Branchen
:: SELFPHP Forum ::
Fragen rund um die Themen PHP?
In über
130.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
Statusinformationen zu den Speicher-Engines des Servers anzeigen
Beispielaufgabe Statusinformationen zu den Speicher-Engines des Servers anzeigen.
Beschreibung
Die Funktion
mysqlEngines() listet die Statusinformationen zu den Speicher-Engines (z.B. MyISAM, InnoDB etc.) des Servers auf, also welche Speicher-Engines unterstützt und standardmäßig genutzt werden. Da die Abfrage für MySQL-Server vor MySQL 4.1.2 anders war, so muss bei dieser Funktion zuerst die MySQL-Version ermittelt werden, um die richtige Abfrage aufrufen zu können. Als Rückgabewert liefert die Funktion ein Array mit den unterstützen Engines und deren Status (YES, NO oder DEFAULT).
YES - Die Engine wird unterstützt
NO - Die Engine wird nicht unterstützt
DEFAULT - Die Standard-Engine
<?PHP
function mysqlEngines ( ) {
$mysqlVersion = mysqlVersion ( );
$format = array();
if ( $mysqlVersion [ 'int' ] < 40102 ) {
$sql = "SHOW VARIABLES LIKE 'have%'" ;
$format [ 'engine' ] = 'Variable_name' ;
$format [ 'value' ] = 'Value' ;
$engines [ 0 ][ 'engine' ] = 'MyISAM' ;
$engines [ 0 ][ 'support' ] = 'DEFAULT' ;
$engines [ 1 ][ 'engine' ] = 'MEMORY' ;
$engines [ 1 ][ 'support' ] = 'YES' ;
$engines [ 2 ][ 'engine' ] = 'MERGE' ;
$engines [ 2 ][ 'support' ] = 'YES' ;
$engines [ 3 ][ 'engine' ] = 'HEAP' ;
$engines [ 3 ][ 'support' ] = 'YES' ;
$additionalEngines = array(
'have_archive' => 'ARCHIVE' ,
'have_bdb' => 'BDB' ,
'have_csv' => 'CSV' ,
'have_innodb' => 'InnoDB' ,
'have_isam' => 'ISAM' ,
'have_gemini' => 'Gemini'
);
}
else {
$sql = "SHOW STORAGE ENGINES" ;
$format [ 'engine' ] = 'Engine' ;
$format [ 'value' ] = 'Support' ;
}
$result = @ mysql_query ( $sql );
if( $mysqlVersion [ 'int' ] < 40102 )
$x = 4 ;
else
$x = 0 ;
while( ( $row = @ mysql_fetch_array ( $result , MYSQL_ASSOC ) ) == true ){
if( $mysqlVersion [ 'int' ] < 40102 ) {
if( !empty( $additionalEngines [ $row [ $format [ 'engine' ]]])){
$engines [ $x ][ 'engine' ] = $additionalEngines [ $row [ $format [ 'engine' ]]];
$engines [ $x ][ 'support' ] = $row [ $format [ 'value' ]];
}
}
else {
$engines [ $x ][ 'engine' ] = $row [ $format [ 'engine' ]];
$engines [ $x ][ 'support' ] = $row [ $format [ 'value' ]];
}
$x ++;
}
return $engines ;
}
?>
Zusatzfunktionen
<?PHP
function mysqlVersion ( ) {
$sql = 'SELECT VERSION( ) AS versionsinfo' ;
$result = @ mysql_query ( $sql );
$version = @ mysql_result ( $result , 0 , "versionsinfo" );
$match = explode ( '.' , $version );
$vers [ 'txt' ] = $version ;
$vers [ 'int' ] = sprintf ( '%d%02d%02d' , $match [ 0 ], $match [ 1 ], intval ( $match [ 2 ] ) );
return $vers ;
}
?>
Anwendungsbeispiel
<?PHP
$conn = @ mysql_connect ( "localhost" , "mysql_user" , "mysql_password" );
if (! $conn ) {
echo "Fehlende Verbindung zur DB: " . mysql_error ();
exit;
}
print_r ( mysqlEngines () );
?>
Ausgabebeispiel: Browseransicht Array
(
[0] => Array
(
[engine] => MEMORY
[support] => YES
)
[1] => Array
(
[engine] => FEDERATED
[support] => NO
)
[2] => Array
(
[engine] => MyISAM
[support] => DEFAULT
)
[3] => Array
(
[engine] => BLACKHOLE
[support] => YES
)
[4] => Array
(
[engine] => MRG_MYISAM
[support] => YES
)
[5] => Array
(
[engine] => CSV
[support] => YES
)
[6] => Array
(
[engine] => ARCHIVE
[support] => YES
)
[7] => Array
(
[engine] => InnoDB
[support] => YES
)
)
:: Anbieterverzeichnis ::
Webhosting/Serverlösungen
Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?
Sie sind nur ein paar Klicks davon entfernt!