:: 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!
|
|
Tabellen in einer MySQL-Datenbank auf Fehler prüfen  |
|
SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an.
Weitere Informationen
Beispielaufgabe
Tabellen in einer MySQL-Datenbank auf Fehler prüfen.
Beschreibung
Die Funktion mysqlCheckTables() prüft in einer Datenbank alle Tabellen auf Fehler.
Als Rückgabewert liefert die Funktion ein Array mit folgenden Werten für jede analysierte Tabelle.
- Table: Der Tabellenname in der Form <Datenbankname>.<Tabellenname>
- Op: Die Art der Aufgabe - hier immer check
- Msg_type: Den Typ der Meldung - status, error, info oder warning
- Msg_text: Die zurückgelieferte Meldung
Folgendes ist bei dieser Funktion zu beachten:
- Der MySQL-Befehl ANALYZE TABLE funktioniert nur bei MyISAM- und InnoDB-Tabellen.
<?PHP
function mysqlCheckTables( $database ) {
$sql = "SHOW TABLES FROM " . $database;
$result = @mysql_query( $sql );
$data = array();
$x = 0;
while( ( $row = @mysql_fetch_array( $result, MYSQL_NUM ) ) == true ){
$sql = "CHECK TABLE " . $database . '.' . $row[0];
$analyze = @mysql_query( $sql );
$rowFetch = @mysql_fetch_array( $analyze, MYSQL_ASSOC );
$data[$x]['Table'] = $rowFetch["Table"];
$data[$x]['Op'] = $rowFetch["Op"];
$data[$x]['Msg_type'] = $rowFetch["Msg_type"];
$data[$x]['Msg_text'] = $rowFetch["Msg_text"];
$x++;
}
return $data;
}
?>
|
Anwendungsbeispiel
<?PHP
$conn = @mysql_connect("localhost", "mysql_user", "mysql_password");
if (!$conn) {
echo "Fehlende Verbindung zur DB: " . mysql_error();
exit;
}
// Datenbankname
$database = 'selfphp-testdb';
print_r( mysqlCheckTables( $database ) );
?>
|
Ausgabebeispiel: Browseransicht
Array
(
[0] => Array
(
[Table] => mysql.columns_priv
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[1] => Array
(
[Table] => mysql.db
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[2] => Array
(
[Table] => mysql.event
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[3] => Array
(
[Table] => mysql.func
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[4] => Array
(
[Table] => mysql.general_log
[Op] => check
[Msg_type] => Error
[Msg_text] => You can't use locks with log tables.
)
[5] => Array
(
[Table] => mysql.help_category
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[6] => Array
(
[Table] => mysql.help_keyword
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[7] => Array
(
[Table] => mysql.help_relation
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[8] => Array
(
[Table] => mysql.help_topic
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[9] => Array
(
[Table] => mysql.host
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[10] => Array
(
[Table] => mysql.ndb_binlog_index
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[11] => Array
(
[Table] => mysql.plugin
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[12] => Array
(
[Table] => mysql.proc
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[13] => Array
(
[Table] => mysql.procs_priv
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[14] => Array
(
[Table] => mysql.servers
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[15] => Array
(
[Table] => mysql.slow_log
[Op] => check
[Msg_type] => Error
[Msg_text] => You can't use locks with log tables.
)
[16] => Array
(
[Table] => mysql.tables_priv
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[17] => Array
(
[Table] => mysql.time_zone
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[18] => Array
(
[Table] => mysql.time_zone_leap_second
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[19] => Array
(
[Table] => mysql.time_zone_name
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[20] => Array
(
[Table] => mysql.time_zone_transition
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[21] => Array
(
[Table] => mysql.time_zone_transition_type
[Op] => check
[Msg_type] => status
[Msg_text] => OK
)
[22] => Array
(
[Table] => mysql.user
[Op] => check
[Msg_type] => warning
[Msg_text] => 1 client is using or hasn't closed the table properly
)
)
|

|
|
|
|
|


:: 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! 
|