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); |