PHP & MySQL Engineering

MySQL - Spalten nach Typ gruppieren

Ich habe mich heute mit einer etwas vernachlässigten Datenbank beschäftigt. Diese enthielt eine bunte Mischung von Spalten in den Formaten utf8_general_ci sowie latin1_swedish_ci.

Ziel der Aktion war es die Struktur erstmal zu analysieren und dann grundlegend zu überarbeiten.

Zuerst ging es also darum einen Überblick darüber zu erhalten, welche Spalten-Typen wie oft vorhanden waren. Zu diesem Zweck habe ich mir folgendes Script geschrieben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
//Mit Datenbank-Server verbinden
if ( ($db_handle = mysql_connect('SERVER', 'BENUTZER_NAME', 'PASSWORD')) === false)
{
        die(mysql_error());
}
 
//Datenbank
$database = 'DATENBANK';
 
//Tabellen auslesen
$tsql = "SHOW TABLES FROM ".$database;
$tquery = mysql_query($tsql, $db_handle) or die(mysql_error($db_handle));
 
while ($trow = mysql_fetch_array ($tquery))
{
        //Aktuelle Tabelle
        $table = $trow[0];
 
        //Spalten auslesen
        $csql = "SHOW FULL COLUMNS FROM ".$database.".".$table;
        $cquery = mysql_query($csql, $db_handle) or die(mysql_error($db_handle));
 
        while ($crow = mysql_fetch_row ($cquery))
        {
                if ( ! empty ($crow[2]))
                {
                        $column_arr[$crow[2]][] = $table.'.'.$crow[0];
                }
        }
}
 
print_r ($column_arr);
 
?>

In einem meiner nächsten Artikel, werde ich beschreiben wie man die Spalten bequem in ein anderes Format konvertieren kann Icon Wink in MySQL - Spalten nach Typ gruppieren

Auf die Datenbank meines Blogs angewendet, sieht die Ausgabe übrigens so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Array
(
    [latin1_swedish_ci] => Array
        (
            [0] => wp_comments.comment_author
            [1] => wp_comments.comment_author_email
            [2] => wp_comments.comment_author_url
            [3] => wp_comments.comment_author_IP
            [4] => wp_comments.comment_content
            [5] => wp_comments.comment_approved
            [6] => wp_comments.comment_agent
            [7] => wp_comments.comment_type
            [8] => wp_izioseo_anonym_links.link_url
            [9] => wp_izioseo_anonym_links.link_hash
            [10] => wp_izioseo_referers.post_url
            [11] => wp_izioseo_referers.referer_searchengine
            [12] => wp_izioseo_referers.referer_url
            [13] => wp_izioseo_referers.referer_request
            [14] => wp_izioseo_referers_keywords.referer_keyword
            [15] => wp_links.link_url
            [16] => wp_links.link_name
            [17] => wp_links.link_image
            [18] => wp_links.link_target
            [19] => wp_links.link_description
            [20] => wp_links.link_visible
            [21] => wp_links.link_rel
            [22] => wp_links.link_notes
            [23] => wp_links.link_rss
            [24] => wp_options.option_name
            [25] => wp_options.option_value
            [26] => wp_options.autoload
            [27] => wp_postmeta.meta_key
            [28] => wp_postmeta.meta_value
            [29] => wp_posts.post_content
            [30] => wp_posts.post_title
            [31] => wp_posts.post_excerpt
            [32] => wp_posts.post_status
            [33] => wp_posts.comment_status
            [34] => wp_posts.ping_status
            [35] => wp_posts.post_password
            [36] => wp_posts.post_name
            [37] => wp_posts.to_ping
            [38] => wp_posts.pinged
            [39] => wp_posts.post_content_filtered
            [40] => wp_posts.guid
            [41] => wp_posts.post_type
            [42] => wp_posts.post_mime_type
            [43] => wp_term_taxonomy.taxonomy
            [44] => wp_term_taxonomy.description
            [45] => wp_terms.name
            [46] => wp_terms.slug
            [47] => wp_usermeta.meta_key
            [48] => wp_usermeta.meta_value
            [49] => wp_users.user_login
            [50] => wp_users.user_pass
            [51] => wp_users.user_nicename
            [52] => wp_users.user_email
            [53] => wp_users.user_url
            [54] => wp_users.user_activation_key
            [55] => wp_users.display_name
        )
)
 

Kommentare

Bisher wurden keine Kommentare hinterlassen.

Kommentar hinterlassen

 
(Wird nicht veröffentlicht)
 
(rel="follow")
 
Kommentar *
 
Fünf + Zehn =