Задать вопрос
@stasbombit

Почему происходит ошибка при выполнении скрипта?

Делаю install.php Код:
spoiler
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<!-- Скрипт проверки принятия соглашения / лицензии -->
<!-- Кодировка -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<!-- Название установщика -->
<title>Установка</title>
<!-- Подключаем CSS (оформление) -->
<link rel="stylesheet" type="text/css" href="1.css">
<?
//Если файл конфигураций пресуцтвует то просим его удалить :D
$filename = 'config.php';/* Папка/Файл.php */
if (file_exists($filename)) {
  print "<div><h2>Ошибка</h2><h5>Для того что бы продолжить установку удалите $filename и <a href=install.php >обновите</a> страницу.</h5></div>";
} else {
?>
<body>
<h5> Лого </h5>
<?php
if(!$_GET['go']) {
?>

<form method="post" action="install.php?go=true"><!--Форма ( необходимо для шага 2)-->
<div>
<h2>О скрипте</h2>

<h6>Текст в блоге</h6>  

</div>


<div>
<h2>Конфигурации</h2>
<table>
</td></tr>        
<tr><td align=right>Хост</td><td align=left><input type=text name=mysql_host value=<?=Localhost?>>        
</td></tr>        
<tr><td align=right>Логин</td><td align=left><input type=text name=mysql_user value=<?=mysql_user?>>
</td></tr>        
<tr><td align=right>Пароль</td><td align=left><input type=password name=mysql_password>        
</td></tr>        
<tr><td align=right>База</td><td align=left><input type=text name=my_database value=<?=my_database?> >        
</td></tr>

</td></tr> 
</table>
<input type="submit" name="install" value="Далее">
</div>
<div>
</div>
</form>
<?php
} else {
?>
<div>
<h2>Установка...</h2>




<?
echo 'Файл config.php '; 
$fp = fopen ("config.php","w");  //Желательно не менять , но если заменили то ниже там где заполнение бд укажите путь к конфигу
flock($f,LOCK_EX);        
fputs($fp,"<?php\n\r");   
fputs($fp,"return array(\n\r");  
fputs($fp,"'version' => '1.0.0',\n\r");
fputs($fp,"'edition' => 'Базовая сборка',\n\r");
fputs($fp,'"db_host" => '."'".$_POST['mysql_host']."',\n\r");
fputs($fp,'"db_user"  =>  '."'".$_POST['mysql_user']."',\n\r");
fputs($fp,'"db_pass"  =>  '."'".$_POST['mysql_password']."',\n\r");
fputs($fp,'"db_name" =>  '."'".$_POST['my_database']."',\n\r");
fputs($fp,'"cms_echo_db_error" =>  "false", #ВЫВОДИТЬ ОШИБКИ БД'); 
fputs($fp,",\n\r"); 
fputs($fp,'"cms_echo_php_error" =>  "false", #ВЫВОДИТЬ ОШИБКИ PHP');   
fputs($fp,",\n\r"); 
fputs($fp,');');   
flock($f,LOCK_UN);       
fclose($fp);
echo '<font color=green>создан</font><BR>';
// Создадим файл .htaccess и укажем в нем
// что по умолчанию нужно открывать файл index.php
echo 'Файл .htaccess ';
$f=fopen('.htaccess','w');
flock($f,LOCK_EX);
fputs($f,"DirectoryIndex index.php\n");
flock($f,LOCK_UN);
fclose($f);
echo '<font color=green>создан</font><BR>';
?>

</div>
<?
$config=include("config.php");
$conn = new mysqli($config["db_host"], $config["db_name"], $config["db_pass"], $config["db_name"]);
if ($conn->connect_error) {
    die();
}
$sql = "
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins` (
  `id` int(11) NOT NULL COMMENT 'id',
  `login` text NOT NULL,
  `fname` text NOT NULL,
  `lname` text NOT NULL,
  `pass` text NOT NULL,
  `groupid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `admins` (`id`, `login`, `fname`, `lname`, `pass`, `groupid`) VALUES
(1, 'admin', 'Пётр', 'Петров', 'admin', 1);

DROP TABLE IF EXISTS `files`;
CREATE TABLE `files` (
  `id` int(11) NOT NULL,
  `path` text NOT NULL,
  `name` text NOT NULL,
  `type` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `files` (`id`, `path`, `name`, `type`) VALUES
(1, '/storage/topcmslogo.png', 'topcmslogo.png', 'image/png');

DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
  `id` int(11) NOT NULL,
  `name` text NOT NULL,
  `href` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `menu` (`id`, `name`, `href`) VALUES
(1, 'Главная', '/index.php?path=home/main');

DROP TABLE IF EXISTS `settings`;
CREATE TABLE `settings` (
  `id` int(11) NOT NULL,
  `setting` text NOT NULL,
  `value` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `settings` (`id`, `setting`, `value`) VALUES
(1, 'headlogo', '1'),
(2, 'contentytpehome', 'text'),
(3, 'contenthome', '<h1>Добро пожаловать</h1>\r\n<h2>Это базавоя сборка TopCms</h2>');

ALTER TABLE `admins`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `files`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `menu`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `settings`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `admins`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', AUTO_INCREMENT=4;

ALTER TABLE `files`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `menu`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

ALTER TABLE `settings`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

";
if($conn->query($sql)){
    echo "Данные успешно добавлены";
} else{
    echo "Ошибка: " . $conn->error;
}
$conn->close();

?>
<div>
<h2>Проверка файлов...</h2>
<h5>Файлы <BR></h5>
<?
$filename = 'config.php'; //Путь и файл который проверяем
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует"; //Если найден
} else {
  print "Файл <b>$filename</b>  // Если не найден
        НЕ существует";
}
Echo '<BR>';
$filename = 'boot.php';//Путь и файл который проверяем
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует"; //Если найден
} else {
  print "Файл <b>$filename</b>  // Если не найден
        НЕ существует";
}
Echo '<BR>';
$filename = 'index.php';//Путь и файл который проверяем
if (file_exists($filename)) {
  print "Файл <b>$filename</b> существует"; //Если найден
} else {
  print "Файл <b>$filename</b>  // Если не найден
        НЕ существует";
}
Echo '<BR>';
?>
<h5>Папки</h5>
<?php
$catname = 'admin'; //Название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>   // Если не найден
        НЕ существует";
}
Echo '<BR>';
$catname = 'func'; //Название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>   // Если не найден
        НЕ существует";
}
Echo '<BR>';
$catname = 'storage'; //Название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>   // Если не найден
        НЕ существует";
}
Echo '<BR>';
$catname = 'theme'; //Название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>   // Если не найден
        НЕ существует";
}
Echo '<BR>';
$catname = 'scripts'; // название папки
if (is_dir("$catname")) {
  print "Папка <b>$catname</b> существует"; //Если найдена
} else {
  print "Файл <b>$catname</b>  // Если не найден
        НЕ существует";
}

Echo '<BR>';
?>


</div>
<div class="<?php if($error) print 'error'; else print 'success'; ?>">
<h2>Установка окончена!</h2>
<?php
if($error)
print 'Ошибка при установке!';
else
print 'Установка окончена! <a href="index.php">главная</a> <a href=admin>Админ панель(логин="admin" пароль="admin")</a>';
?>

</div>
<?php } ?>
<?php } ?>

</body>
</html>

Но в выполнении sql запроса для заполнения бд появляется ошибка:
Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE `admins` ( `id` int(11) NOT NULL COMMENT 'id', `login` text N' at line 2

Самое интересное что при выполнении того-же скрипта(запроса) в phpmyadmin всё работает.
Сам запрос:
spoiler
DROP TABLE IF EXISTS `admins`;
CREATE TABLE `admins` (
  `id` int(11) NOT NULL COMMENT 'id',
  `login` text NOT NULL,
  `fname` text NOT NULL,
  `lname` text NOT NULL,
  `pass` text NOT NULL,
  `groupid` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `admins` (`id`, `login`, `fname`, `lname`, `pass`, `groupid`) VALUES
(1, 'admin', 'Пётр', 'Петров', 'admin', 1);

DROP TABLE IF EXISTS `files`;
CREATE TABLE `files` (
  `id` int(11) NOT NULL,
  `path` text NOT NULL,
  `name` text NOT NULL,
  `type` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `files` (`id`, `path`, `name`, `type`) VALUES
(1, '/storage/topcmslogo.png', 'topcmslogo.png', 'image/png');

DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
  `id` int(11) NOT NULL,
  `name` text NOT NULL,
  `href` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `menu` (`id`, `name`, `href`) VALUES
(1, 'Главная', '/index.php?path=home/main');

DROP TABLE IF EXISTS `settings`;
CREATE TABLE `settings` (
  `id` int(11) NOT NULL,
  `setting` text NOT NULL,
  `value` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `settings` (`id`, `setting`, `value`) VALUES
(1, 'headlogo', '1'),
(2, 'contentytpehome', 'text'),
(3, 'contenthome', '<h1>Добро пожаловать</h1>\r\n<h2>Это базавоя сборка TopCms</h2>');

ALTER TABLE `admins`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `files`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `menu`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `settings`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `admins`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id', AUTO_INCREMENT=4;

ALTER TABLE `files`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;

ALTER TABLE `menu`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

ALTER TABLE `settings`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
  • Вопрос задан
  • 79 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
IvanU7n
@IvanU7n
nothing interesting here
https://www.php.net/manual/en/mysqli.multi-query.php
ну или руками разбивать запрос на части и по частям же выполнять, phpmyadmin ИМНИП так и делает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы