El script SQL funciona en MySQL, pero falla con mysqli-> query (); ¿por qué?

Mi script SQL funciona correctamente en MySQL Workbench.

Lo siguiente da un error:

$link = mysqli_connect(***********);
$result = $link->query($sql);

El script SQL realiza algunas acciones incluyendo:

crear tabla temporalmesa truncadamesa plegableinsertarseleccionar

El error es:

-- 1.1 Creating temporary table for categories

    drop table if exists exp_categories; -- just in case
    create temporary table exp_categories
    (
        ID bigint not null,
        Categories text not null,
        PRIMARY KEY (ID)
    ) DEFAULT CHARSET=utf8;

-- 1.2 Inserting data...
-- few other statements here
-- last statement is SELECT

¿Tiene mysqli limitaciones con las que me encuentro?

Respuestas a la pregunta(1)

Su respuesta a la pregunta