Как вы выполняете этот скрипт?
Если вы пытаетесь запустить его программно, вы должны знать, что MySQL API по умолчанию выполняет только один оператор за раз.Вы не можете связать их вместе с точкой с запятой и ожидать, что они будут запускать все операторы.
Вы можете выполнить каждый оператор CREATE TABLE
по отдельности в цикле, или вы можете запустить скрипт, подав его в качестве входных данныхmysql
клиент командной строки.
Это не так просто, как кажется, написать класс приложения для выполнения сценариев общего назначения в вашем приложении, поскольку полный синтаксис сценария включает в себя множество угловых случаев.
См. Примеры угловых случаев в моем ответе на Загрузка файлов .sql из PHP .