Я создал сеть, в которую вы можете загружать и скачивать файлы - все работает отлично. Но теперь я хочу создать файл инициализации, который удалит старые записи в базе данных и создаст в ней новые таблицы.
Итак, я пишу это:
$command = "
IF OBJECT_ID(`".$database.".Users`) IS NOT NULL
DROP TABLE ".$database.".Users;
IF OBJECT_ID(`".$database.".Uploads`) IS NOT NULL
DROP TABLE ".$database.".Uploads;
CREATE TABLE `Users` (
`Id` int(11) NOT NULL,
`User` text NOT NULL,
`Password` text NOT NULL,
`Permission` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
ALTER TABLE `Users` ADD PRIMARY KEY (`Id`);
ALTER TABLE `Users` MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=0;
CREATE TABLE `Uploads` (
`Id` int(11) NOT NULL,
`Name` text NOT NULL,
`User` text NOT NULL,
`Comment` text NOT NULL,
`Path` text NOT NULL,
`Permission` int(11) NOT NULL,
`Date` text NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
ALTER TABLE `Uploads` ADD PRIMARY KEY (`Id`);
ALTER TABLE `Uploads` MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=0;
";
$result = mysqli_query($conn, $command) or die(mysqli_error($conn));
Я думаю, что код правильный (но, очевидно, нет). Когда я запускаю его, SQL выдает ошибку:
В вашем синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который можно использовать рядом с «IF OBJECT_ID (db.Users
) NOT NULL DROP TABLE db.User» в строке 1 **.
Это означает, что у него нет проблем с подключением к базе данных SQL.
Я пытался вместо IF OBJECT_ID
использовать IF NOT EXISTS
, но это тоже не работает. Кто-нибудь может сказать мне, является ли многострочная команда SQL этой проблемой или это что-то еще?
Примечание: я использую 5.5.37 версию MariaDB (если это поможет)