NB! Antud koodi kopeerimine/mugandamine/käivitamine on selle tegevuse tegija omal vastutusel. Radicenter (ja/või tema töötajad) ei vastuta mingil määral selle koodi,toimivuse ja/või väärkasutuse eest.
NB! Ennem antud skriptide kopeerimist/käivitamist, TULEB KINDLASTI VÕTTA MUUDETAVA BAASI VARUKOOPIA!
1. Tabelite parandamine:
03 |
$db  = new  mysqli( 'localhost' , 'ANDMEBAASIKASUTAJA' , 'SALASÕNA' ); |
05 |
if  ( $db ->connect_error) { |
06 |
    die ( "Connection failed: "  . $conn ->connect_error); |
08 |
echo  "Connected successfully" ; |
11 |
$dbs [] =Â 'ANDMEBAASINIMI' ; |
13 |
foreach ( $dbs  as  $v ){ |
14 |
    $db ->select_db( $v ); |
15 |
    $q  = $db ->query( 'show tables' ); |
17 |
    $tables  = array (); |
19 |
    while ( $r  = $q ->fetch_array()){ |
20 |
            $tables [] = $r [0]; |
22 |
    foreach ( $tables  as  $t ){ |
23 |
        echo  "Repairing $v.$t\n<br>" ; |
24 |
        $x  = $db ->query( 'REPAIR TABLE `' . $t . '`;' ); |
2. Tabelite storage mootori vahetamine:
03 |
$db  = new  mysqli( 'localhost' , 'ANDMEBAASIKASUTAJA' , 'SALASÕNA' ); |
05 |
if  ( $db ->connect_error) { |
06 |
    die ( "Connection failed: "  . $conn ->connect_error); |
08 |
echo  "Connected successfully" ; |
11 |
$dbs [] =Â 'ANDMEBAASINIMI' ; |
13 |
foreach ( $dbs  as  $v ){ |
14 |
    $db ->select_db( $v ); |
15 |
    $q  = $db ->query( 'show tables' ); |
17 |
    $tables  = array (); |
19 |
    while ( $r  = $q ->fetch_array()){ |
20 |
            $tables [] = $r [0]; |
22 |
    foreach ( $tables  as  $t ){ |
23 |
        echo  "Altering table engine for: $v.$t\n<br>" ; |
24 |
        $db ->query( 'ALTER TABLE `' . $t . '` ENGINE=InnoDB;' ); |
NB! Engine tüüp võib olla MYISAM või INNODB või…. – rohkem infot lehel: SIIN
3. Tabelite character set/encoding vahetamine misiganes -> utf8mb4_unicode_ci:
(NB! Ennem selle koodi käivitamist TULEB KINDLASTI TEHA VARUKOOPIA ANDMEBAASIST!)
03 |
$db  = new  mysqli( 'localhost' , 'ANDMEBAASIKASUTAJA' , 'SALASÕNA' ); |
05 |
if  ( $db ->connect_error) { |
06 |
    die ( "Connection failed: "  . $conn ->connect_error); |
08 |
echo  "Connected successfully" ; |
11 |
$dbs [] =Â 'ANDMEBAASINIMI' ; |
13 |
foreach ( $dbs  as  $v ){ |
14 |
    $db ->select_db( $v ); |
15 |
    echo  "Altering database character set for: $v\n<br>" ; |
16 |
    $db ->query( 'ALTER DATABASE `' . $v . '` CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;' ); |
17 |
    $q  = $db ->query( 'show tables' ); |
19 |
    $tables  = array (); |
21 |
    while ( $r  = $q ->fetch_array()){ |
22 |
            $tables [] = $r [0]; |
24 |
    foreach ( $tables  as  $t ){ |
25 |
        echo  "Altering table character set for: $v.$t\n<br>" ; |
26 |
        $db ->query( 'ALTER TABLE `' . $t . '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;' ); |
29 |
    echo  "Altering table column_name character sets for all table colums under: $v\n<br>" ; |
30 |
    $column_query  = $db ->query( "select CONCAT('ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME,'` CHANGE ',COLUMN_NAME,' ', COLUMN_NAME, ' ', DATA_TYPE,'(',CHARACTER_MAXIMUM_LENGTH,') CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;') as column_alter from information_schema.COLUMNS WHERE DATA_TYPE = 'varchar' AND TABLE_SCHEMA = '" . $v . "'" ); |
31 |
    foreach ( $column_query  as  $x ){ |
32 |
        $db ->query( $x ); |