Browse code

Database table conversion: defaults -> utf8mb4 - Preliminary

Clarissa Walker authored on 2026/07/15 19:46:03
Showing 3 changed files
... ...
@@ -61,4 +61,4 @@ CREATE TABLE `fanfiction_settings` (
61 61
   `smtp_port` varchar(5) NOT NULL default '',
62 62
   `smtp_secure` varchar(3) NOT NULL default '',
63 63
   PRIMARY KEY  (`sitekey`)
64
-) ENGINE=MyISAM DEFAULT CHARSET=latin1;
64
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
... ...
@@ -12,7 +12,7 @@ CREATE TABLE `fanfiction_authorfields` (
12 12
   `field_code_out` text,
13 13
   `field_on` tinyint(1) NOT NULL default '0',
14 14
   PRIMARY KEY  (`field_id`)
15
-) ENGINE=MyISAM;
15
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
16 16
 
17 17
 -- --------------------------------------------------------
18 18
 
... ...
@@ -26,7 +26,7 @@ CREATE TABLE `fanfiction_authorinfo` (
26 26
   `info` varchar(255) NOT NULL default '',
27 27
   PRIMARY KEY  (`uid`,`field`),
28 28
   KEY `uid` (`uid`)
29
-) ENGINE=MyISAM;
29
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
30 30
 
31 31
 -- --------------------------------------------------------
32 32
 
... ...
@@ -50,7 +50,7 @@ CREATE TABLE `fanfiction_authorprefs` (
50 50
   `contact` tinyint(1) NOT NULL default '0',
51 51
   `stories` int(11) NOT NULL default '',
52 52
   PRIMARY KEY  (`uid`)
53
-) ENGINE=MyISAM;
53
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
54 54
 
55 55
 -- --------------------------------------------------------
56 56
 
... ...
@@ -72,7 +72,7 @@ CREATE TABLE `fanfiction_authors` (
72 72
   PRIMARY KEY  (`uid`),
73 73
   KEY `penname` (`penname`),
74 74
   KEY `admincreated` (`admincreated`)
75
-) ENGINE=MyISAM;
75
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
76 76
 
77 77
 -- --------------------------------------------------------
78 78
 
... ...
@@ -89,7 +89,7 @@ CREATE TABLE `fanfiction_blocks` (
89 89
   `block_variables` text NOT NULL,
90 90
   PRIMARY KEY  (`block_id`),
91 91
   KEY `block_name` (`block_name`)
92
-) ENGINE=MyISAM;
92
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
93 93
 
94 94
 -- --------------------------------------------------------
95 95
 
... ...
@@ -109,7 +109,7 @@ CREATE TABLE `fanfiction_categories` (
109 109
   `numitems` int(11) NOT NULL default '0',
110 110
   PRIMARY KEY  (`catid`),
111 111
   KEY `byparent` (`parentcatid`,`displayorder`)
112
-) ENGINE=MyISAM;
112
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
113 113
 
114 114
 -- --------------------------------------------------------
115 115
 
... ...
@@ -138,7 +138,7 @@ CREATE TABLE `fanfiction_chapters` (
138 138
   KEY `title` (`title`),
139 139
   KEY `validated` (`validated`),
140 140
   KEY `forstoryblock` (`sid`,`validated`)
141
-) ENGINE=MyISAM;
141
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
142 142
 
143 143
 -- --------------------------------------------------------
144 144
 
... ...
@@ -155,7 +155,7 @@ CREATE TABLE `fanfiction_characters` (
155 155
   PRIMARY KEY  (`charid`),
156 156
   KEY `catid` (`catid`),
157 157
   KEY `charname` (`charname`)
158
-) ENGINE=MyISAM;
158
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
159 159
 
160 160
 -- --------------------------------------------------------
161 161
 
... ...
@@ -169,7 +169,7 @@ CREATE TABLE `fanfiction_classes` (
169 169
   `class_name` varchar(100) NOT NULL default '',
170 170
   PRIMARY KEY  (`class_id`),
171 171
   KEY `byname` (`class_type`,`class_name`,`class_id`)
172
-) ENGINE=MyISAM;
172
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
173 173
 
174 174
 -- --------------------------------------------------------
175 175
 
... ...
@@ -183,7 +183,7 @@ CREATE TABLE `fanfiction_classtypes` (
183 183
   `classtype_title` varchar(50) NOT NULL default '',
184 184
   PRIMARY KEY  (`classtype_id`),
185 185
   UNIQUE KEY `classtype_name` (`classtype_name`)
186
-) ENGINE=MyISAM;
186
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
187 187
 
188 188
 -- --------------------------------------------------------
189 189
 
... ...
@@ -195,7 +195,7 @@ CREATE TABLE `fanfiction_coauthors` (
195 195
   `sid` int(11) NOT NULL default '0',
196 196
   `uid` int(11) NOT NULL default '0',
197 197
   PRIMARY KEY  (`sid`,`uid`),
198
-) ENGINE=MyISAM;
198
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
199 199
 -- --------------------------------------------------------
200 200
 
201 201
 -- 
... ...
@@ -209,7 +209,7 @@ CREATE TABLE `fanfiction_codeblocks` (
209 209
   `code_module` varchar(60) default NULL,
210 210
   PRIMARY KEY  (`code_id`),
211 211
   KEY `code_type` (`code_type`)
212
-) ENGINE=MyISAM;
212
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
213 213
 
214 214
 -- --------------------------------------------------------
215 215
 
... ...
@@ -225,7 +225,7 @@ CREATE TABLE `fanfiction_comments` (
225 225
   `time` int(10) unsigned NOT NULL default '0',
226 226
   PRIMARY KEY  (`cid`),
227 227
   KEY `commentlist` (`nid`,`time`)
228
-) ENGINE=MyISAM;
228
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
229 229
 
230 230
 -- --------------------------------------------------------
231 231
 
... ...
@@ -240,7 +240,7 @@ CREATE TABLE `fanfiction_favorites` (
240 240
   `comments` text,
241 241
   UNIQUE KEY `byitem` (`item`,`type`,`uid`),
242 242
   UNIQUE KEY `byuid` (`uid`,`type`,`item`)
243
-) ENGINE=MyISAM;
243
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
244 244
 
245 245
 -- --------------------------------------------------------
246 246
 
... ...
@@ -256,7 +256,7 @@ CREATE TABLE `fanfiction_inseries` (
256 256
   `inorder` int(11) NOT NULL default '0',
257 257
   PRIMARY KEY  (`sid`,`seriesid`),
258 258
   KEY `seriesid` (`seriesid`,`inorder`)
259
-) ENGINE=MyISAM;
259
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
260 260
 
261 261
 -- --------------------------------------------------------
262 262
 
... ...
@@ -272,7 +272,7 @@ CREATE TABLE `fanfiction_log` (
272 272
   `log_timestamp` int(10) unsigned NOT NULL default '0',
273 273
   `log_type` char(2) NOT NULL default '',
274 274
   PRIMARY KEY  (`log_id`)
275
-) ENGINE=MyISAM;
275
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
276 276
 
277 277
 -- --------------------------------------------------------
278 278
 
... ...
@@ -287,7 +287,7 @@ CREATE TABLE `fanfiction_messages` (
287 287
   `message_text` text,
288 288
   PRIMARY KEY  (`message_id`),
289 289
   KEY `message_name` (`message_name`)
290
-) ENGINE=MyISAM;
290
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
291 291
 
292 292
 -- --------------------------------------------------------
293 293
 
... ...
@@ -301,7 +301,7 @@ CREATE TABLE `fanfiction_modules` (
301 301
   `version` varchar(10) NOT NULL default '1.0',
302 302
   PRIMARY KEY  (`id`),
303 303
   KEY `name_version` (`name`,`version`)
304
-) ENGINE=MyISAM;
304
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
305 305
 
306 306
 -- --------------------------------------------------------
307 307
 
... ...
@@ -317,7 +317,7 @@ CREATE TABLE `fanfiction_news` (
317 317
   `time` int(10) unsigned NOT NULL default '0',
318 318
   `comments` int(11) NOT NULL default '0',
319 319
   PRIMARY KEY  (`nid`)
320
-) ENGINE=MyISAM;
320
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
321 321
 
322 322
 -- --------------------------------------------------------
323 323
 
... ...
@@ -334,7 +334,7 @@ CREATE TABLE `fanfiction_pagelinks` (
334 334
   `link_access` tinyint(4) NOT NULL default '0',
335 335
   PRIMARY KEY  (`link_id`),
336 336
   KEY `link_name` (`link_name`)
337
-) ENGINE=MyISAM;
337
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
338 338
 
339 339
 -- --------------------------------------------------------
340 340
 
... ...
@@ -353,7 +353,7 @@ CREATE TABLE `fanfiction_panels` (
353 353
   `panel_type` varchar(20) NOT NULL default 'A',
354 354
   PRIMARY KEY  (`panel_id`),
355 355
   KEY `panel_type` (`panel_type`,`panel_name`)
356
-) ENGINE=MyISAM;
356
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
357 357
 
358 358
 -- --------------------------------------------------------
359 359
 
... ...
@@ -368,7 +368,7 @@ CREATE TABLE `fanfiction_ratings` (
368 368
   `warningtext` text NOT NULL,
369 369
   PRIMARY KEY  (`rid`),
370 370
   KEY `rating` (`rating`)
371
-) ENGINE=MyISAM;
371
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
372 372
 
373 373
 -- --------------------------------------------------------
374 374
 
... ...
@@ -394,7 +394,7 @@ CREATE TABLE `fanfiction_reviews` (
394 394
   KEY `avgrating` (`type`,`item`,`rating`),
395 395
   KEY `bychapter` (`chapid`,`rating`),
396 396
   KEY `byuid` (`uid`,`item`,`type`)
397
-) ENGINE=MyISAM;
397
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
398 398
 
399 399
 -- --------------------------------------------------------
400 400
 
... ...
@@ -420,7 +420,7 @@ CREATE TABLE `fanfiction_series` (
420 420
   PRIMARY KEY  (`seriesid`),
421 421
   KEY `catid` (`catid`),
422 422
   KEY `owner` (`uid`,`title`)
423
-) ENGINE=MyISAM;
423
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
424 424
 
425 425
 -- --------------------------------------------------------
426 426
 -- 
... ...
@@ -438,7 +438,7 @@ CREATE TABLE `fanfiction_stats` (
438 438
   `members` int(11) NOT NULL default '0',
439 439
   `reviewers` int(11) NOT NULL default '0',
440 440
   `newestmember` int(11) NOT NULL default '0'
441
-) ENGINE=MyISAM;
441
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
442 442
 
443 443
 -- --------------------------------------------------------
444 444
 
... ...
@@ -480,7 +480,7 @@ CREATE TABLE `fanfiction_stories` (
480 480
   KEY `challenges` (`challenges`),
481 481
   KEY `validateduid` (`validated`,`uid`),
482 482
   KEY `recent` (`updated`,`validated`)
483
-) ENGINE=MyISAM;
483
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
484 484
 
485 485
 -- --------------------------------------------------------
486 486
 
... ...
@@ -551,4 +551,4 @@ CREATE TABLE `fanfiction_settings` (
551 551
   `rectarget` tinyint(1) NOT NULL default '0',
552 552
   `autovalrecs` tinyint(1) NOT NULL default '0',
553 553
   PRIMARY KEY  (`sitekey`)
554
-) ENGINE=MyISAM;
554
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
... ...
@@ -493,14 +493,15 @@ switch ($_GET['step'])
493 493
   `field_code_out` text,
494 494
   `field_on` tinyint(1) NOT NULL default '0',
495 495
   PRIMARY KEY  (`field_id`)
496
-) ENGINE=MyISAM;");
496
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
497 497
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_authorfields</td><td align='center'>" . ($authorfields ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
498 498
 				$authorinfo = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorinfo` (
499 499
   `uid` int(11) NOT NULL default '0',
500 500
   `field` int(11) NOT NULL default '0',
501 501
   `info` varchar(255) NOT NULL default ' ',
502 502
   PRIMARY KEY  (`uid`,`field`),
503
-  KEY `uid` (`uid`)) ENGINE=MyISAM;");
503
+  KEY `uid` (`uid`)
504
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
504 505
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_authorinfo</td><td align='center'>" . ($authorinfo ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
505 506
 				$authorprefs = dbquery("
506 507
 CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
... ...
@@ -519,7 +520,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
519 520
   `contact` tinyint(1) NOT NULL default '0',
520 521
   `stories` int(11) NOT NULL default '0',
521 522
   PRIMARY KEY  (`uid`)
522
-) ENGINE=MyISAM;");
523
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
523 524
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_authorprefs</td><td align='center'>" . ($authorprefs ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
524 525
 				$authors = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authors` (
525 526
   `uid` int(11) NOT NULL auto_increment,
... ...
@@ -534,7 +535,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
534 535
   PRIMARY KEY  (`uid`),
535 536
   KEY `penname` (`penname`),
536 537
   KEY `admincreated` (`admincreated`)
537
-) ENGINE=MyISAM;");
538
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
538 539
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_authors</td><td align='center'>" . ($authors ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
539 540
 				$blocks = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_blocks` (
540 541
   `block_id` int(11) NOT NULL auto_increment,
... ...
@@ -545,7 +546,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
545 546
   `block_variables` text NOT NULL,
546 547
   PRIMARY KEY  (`block_id`),
547 548
   KEY `block_name` (`block_name`)
548
-) ENGINE=MyISAM;");
549
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
549 550
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_blocks</td><td align='center'>" . ($blocks ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
550 551
 				$categories = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_categories` (
551 552
   `catid` int(11) NOT NULL auto_increment,
... ...
@@ -559,7 +560,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
559 560
   `numitems` int(11) NOT NULL default '0',
560 561
   PRIMARY KEY  (`catid`),
561 562
   KEY `byparent` (`parentcatid`,`displayorder`)
562
-) ENGINE=MyISAM;");
563
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
563 564
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_categories</td><td align='center'>" . ($categories ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
564 565
 				$chapters = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_chapters` (
565 566
   `chapid` int(11) NOT NULL auto_increment,
... ...
@@ -582,7 +583,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
582 583
   KEY `title` (`title`),
583 584
   KEY `validated` (`validated`),
584 585
   KEY `forstoryblock` (`sid`,`validated`)
585
-) ENGINE=MyISAM;");
586
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
586 587
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_chapters</td><td align='center'>" . ($chapters ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
587 588
 				$characters = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_characters` (
588 589
   `charid` int(11) NOT NULL auto_increment,
... ...
@@ -593,7 +594,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
593 594
   PRIMARY KEY  (`charid`),
594 595
   KEY `catid` (`catid`),
595 596
   KEY `charname` (`charname`)
596
-) ENGINE=MyISAM;");
597
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
597 598
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_characters</td><td align='center'>" . ($characters ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
598 599
 				$classes = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_classes` (
599 600
   `class_id` int(11) NOT NULL auto_increment,
... ...
@@ -601,7 +602,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
601 602
   `class_name` varchar(100) NOT NULL default '',
602 603
   PRIMARY KEY  (`class_id`),
603 604
   KEY `byname` (`class_type`,`class_name`,`class_id`)
604
-) ENGINE=MyISAM;");
605
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
605 606
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_classes</td><td align='center'>" . ($classes ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
606 607
 				$classtypes = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_classtypes` (
607 608
   `classtype_id` int(11) NOT NULL auto_increment,
... ...
@@ -609,13 +610,13 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
609 610
   `classtype_title` varchar(50) NOT NULL default '',
610 611
   PRIMARY KEY  (`classtype_id`),
611 612
   UNIQUE KEY `classtype_name` (`classtype_name`)
612
-) ENGINE=MyISAM;");
613
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
613 614
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_classtypes</td><td align='center'>" . ($classtypes ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
614 615
 				$coauthors = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_coauthors` (
615 616
   `sid` int(11) NOT NULL default '0',
616 617
   `uid` int(11) NOT NULL default '0',
617 618
   PRIMARY KEY  (`sid`,`uid`)
618
-) ENGINE=MyISAM;");
619
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
619 620
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_coauthors</td><td align='center'>" . ($coauthors ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
620 621
 				$codeblocks = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_codeblocks` (
621 622
   `code_id` int(11) NOT NULL auto_increment,
... ...
@@ -624,7 +625,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
624 625
   `code_module` varchar(60) default NULL,
625 626
   PRIMARY KEY  (`code_id`),
626 627
   KEY `code_type` (`code_type`)
627
-) ENGINE=MyISAM;");
628
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
628 629
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_codeblocks</td><td align='center'>" . ($codeblocks ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
629 630
 				$comments = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_comments` (
630 631
   `cid` int(11) NOT NULL auto_increment,
... ...
@@ -634,7 +635,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
634 635
   `time` int(10) unsigned NOT NULL default '0',
635 636
   PRIMARY KEY  (`cid`),
636 637
   KEY `commentlist` (`nid`,`time`)
637
-) ENGINE=MyISAM;");
638
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
638 639
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_comments</td><td align='center'>" . ($comments ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
639 640
 				$favorites = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_favorites` (
640 641
   `uid` int(11) NOT NULL default '0',
... ...
@@ -643,7 +644,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
643 644
   `comments` text NOT NULL,
644 645
   UNIQUE KEY `byitem` (`item`,`type`,`uid`),
645 646
   UNIQUE KEY `byuid` (`uid`,`type`,`item`)
646
-) ENGINE=MyISAM;");
647
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
647 648
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_favorites</td><td align='center'>" . ($favorites ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
648 649
 				$inseries = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_inseries` (
649 650
   `seriesid` int(11) NOT NULL default '0',
... ...
@@ -653,7 +654,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
653 654
   `inorder` int(11) NOT NULL default '0',
654 655
   PRIMARY KEY  (`sid`,`seriesid`, `subseriesid`),
655 656
   KEY `seriesid` (`seriesid`,`inorder`)
656
-) ENGINE=MyISAM;");
657
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
657 658
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_inseries</td><td align='center'>" . ($inseries ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
658 659
 				$logs = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_log` (
659 660
   `log_id` int(11) NOT NULL auto_increment,
... ...
@@ -663,7 +664,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
663 664
   `log_timestamp` int(10) unsigned NOT NULL default '0',
664 665
   `log_type` varchar(2) NOT NULL,
665 666
   PRIMARY KEY  (`log_id`)
666
-) ENGINE=MyISAM");
667
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
667 668
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_log</td><td align='center'>" . ($logs ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
668 669
 				$messages = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_messages` (
669 670
   `message_id` int(11) NOT NULL auto_increment,
... ...
@@ -672,7 +673,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_authorprefs` (
672 673
   `message_text` text NOT NULL,
673 674
   PRIMARY KEY  (`message_id`),
674 675
   KEY `message_name` (`message_name`)
675
-) ENGINE=MyISAM;");
676
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
676 677
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_messages</td><td align='center'>" . ($messages ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
677 678
 				$modules = dbquery("
678 679
 CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
... ...
@@ -691,7 +692,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
691 692
   `time` int(10) unsigned NOT NULL default '0',
692 693
   `comments` INT NOT NULL DEFAULT '0',
693 694
   PRIMARY KEY  (`nid`)
694
-) ENGINE=MyISAM;");
695
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
695 696
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_news</td><td align='center'>" . ($news ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
696 697
 				$pagelinks = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_pagelinks` (
697 698
   `link_id` int(11) NOT NULL auto_increment,
... ...
@@ -703,7 +704,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
703 704
   `link_access` tinyint(4) NOT NULL default '0',
704 705
   PRIMARY KEY  (`link_id`),
705 706
   KEY `link_name` (`link_name`)
706
-) ENGINE=MyISAM;");
707
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
707 708
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_pagelinks</td><td align='center'>" . ($pagelinks ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
708 709
 				$panels = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_panels` (
709 710
   `panel_id` int(11) NOT NULL auto_increment,
... ...
@@ -716,7 +717,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
716 717
   `panel_type` varchar(20) NOT NULL default 'A',
717 718
   PRIMARY KEY  (`panel_id`),
718 719
   KEY `panel_type` (`panel_type`,`panel_name`)
719
-) ENGINE=MyISAM;");
720
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
720 721
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_panels</td><td align='center'>" . ($panels ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
721 722
 				$ratings = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_ratings` (
722 723
   `rid` int(11) NOT NULL auto_increment,
... ...
@@ -725,7 +726,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
725 726
   `warningtext` text NOT NULL,
726 727
   PRIMARY KEY  (`rid`),
727 728
   KEY `rating` (`rating`)
728
-) ENGINE=MyISAM;");
729
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
729 730
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_ratings</td><td align='center'>" . ($ratings ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
730 731
 				$reviews = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_reviews` (
731 732
   `reviewid` int(11) NOT NULL auto_increment,
... ...
@@ -745,7 +746,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
745 746
   KEY `avgrating` (`type`,`item`,`rating`),
746 747
   KEY `bychapter` (`chapid`,`rating`),
747 748
   KEY `byuid` (`uid`,`item`,`type`)
748
-) ENGINE=MyISAM;");
749
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
749 750
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_reviews</td><td align='center'>" . ($reviews ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
750 751
 				$series = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_series` (
751 752
   `seriesid` int(11) NOT NULL auto_increment,
... ...
@@ -765,7 +766,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
765 766
   KEY `characters` (`characters`),
766 767
   KEY `classes` (`classes`),
767 768
   KEY `owner` (`uid`,`title`)
768
-) ENGINE=MyISAM;");
769
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
769 770
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_series</td><td align='center'>" . ($series ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
770 771
 				$stats = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_stats` (
771 772
   `sitekey` varchar(50) NOT NULL default '0',
... ...
@@ -778,7 +779,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
778 779
   `members` int(11) NOT NULL default '0',
779 780
   `reviewers` int(11) NOT NULL default '0',
780 781
   `newestmember` int(11) NOT NULL default '0'
781
-) ENGINE=MyISAM");
782
+) ENGINE=InnoDB");
782 783
 				dbquery("INSERT INTO " . $tableprefix . "fanfiction_stats(`sitekey`, `newestmember`) VALUES('" . SITEKEY . "', '1')");
783 784
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_stats</td><td align='center'>" . ($stats ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
784 785
 				$stories = dbquery("CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_stories` (
... ...
@@ -813,7 +814,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
813 814
   KEY `rr` (`rr`),
814 815
   KEY `validateduid` (`validated`,`uid`),
815 816
   KEY `recent` (`updated`,`validated`)
816
-) ENGINE=MyISAM;");
817
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;");
817 818
 				$output .= "<tr><td>" . $tableprefix . "fanfiction_stories</td><td align='center'>" . ($stories ? "<img src=\"../images/check.gif\">" : "<img src=\"../images/X.gif\">") . "</td></tr>";
818 819
 				$output .= "</table>";
819 820
 				$output .= write_message(_TABLEFAILED . "<br /><br /><a href='install.php?step=4'>" . _CONTINUE . "</a>");
... ...
@@ -957,7 +958,7 @@ CREATE TABLE IF NOT EXISTS `" . $tableprefix . "fanfiction_modules` (
957 958
   `smtp_port` varchar(5) NOT NULL default '',
958 959
   `smtp_secure` varchar(3) NOT NULL default '',
959 960
   PRIMARY KEY  (`sitekey`)
960
-) ENGINE=MyISAM;");
961
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;");
961 962
 					if ($settings) $output .= write_message("<img src=\"../images/check.gif\"> " . _SETTINGSTABLESUCCESS . " <br /><a href='install.php?step=2'>" . _CONTINUE . "</a>");
962 963
 					else $output .= write_message(_SETTINGSTABLEAUTOFAIL . "<br /><br /> <a href='install.php?step=2'>" . _CONTINUE . "</a>");
963 964
 				}