Teil von  SELFPHP   Teil von  Code Snippets / MySQL / Datenbank Wartung
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



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

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Tabellen in einer MySQL-Datenbank auf Fehler prüfen





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$resultMYSQL_NUM ) ) == true ){
        
            
$sql "CHECK TABLE " $database '.' $row[0];
            
            
$analyze = @mysql_query$sql );
            
            
$rowFetch = @mysql_fetch_array$analyzeMYSQL_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_rmysqlCheckTables$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
        )

)






 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt