Teil von  SELFPHP   Teil von  Code Snippets / MySQL / Datenbank Wartung
Professional CronJob-Service

Suche

International PHP Conference


WebTech Conference


:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP?
In über 130.000 Beiträgen finden Sie sicher die passende Antwort!  

 
PHP Summit


Software Architecture Summit


:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
HTML5 Days


JavaScript Days


:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
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$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

PSW GROUP GmbH & Co. KG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 

:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 
 

Ausgewählter Tipp im Bereich PHP-Skripte


Tage zwischen zwei Datumsangaben ermitteln

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Datum und Uhrzeit wann der MySQL-Server zuletzt gestartet wurde

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2014 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt