:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.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
)
)
|
|
|
|
|
|
|