- Регистрация
- 15 Авг 2011
- Сообщения
- 186
- Реакции
- 28
- Автор темы
- Заблокирован
- #1
Здравствуйте! Подскажите как решить проблему с выдаваемыми ошибками:
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 94
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 118
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 119
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 120
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 121
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 123
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 136
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 158
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 176
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 189
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 208
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 221
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 233
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 235
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 236
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 237
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 118
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 119
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 120
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 121
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 123
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 136
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 158
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 176
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 189
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 208
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 221
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 233
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 235
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 236
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in E:\domains\cpe.loc\engine\install\install.php on line 237
PHP:
<?php
/*
==================================================
--------------------------------------------------
--------------------------------------------------
==================================================
==================================================
Файл: install.php
--------------------------------------------------
Назначение: Класс установки
==================================================
*/
//Подключение нужных файлов
require_once $_SERVER['DOCUMENT_ROOT'].'/engine/config.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/engine/data/connect.php';
require_once DIR_ENGINE . 'simple.php';
require_once DIR_ENGINE . 'errors/global.php';
class install
{
public $connect;
public function __construct()
{
$this->connect = @new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE)
or die(mysqli_connect_error());
}
public function show()
{
if (file_exists(DIR_ENGINE . 'data/config.cpe.php'))
return false;
include_once DIR_ENGINE . 'install/header.php';
include_once DIR_ENGINE . 'install/ok.php';
include_once DIR_ENGINE . 'install/footer.php';
}
//Создание файла конфигурации БД
public function createFile($database, $user, $password, $host)
{
try {
$result = "
<?php
define('DB_HOST','$host');\n
define('DB_USER','$user');\n
define('DB_PASSWORD','$password');\n
define('DB_DATABASE','$database');\n
?>";
if (!file_exists(DIR_ENGINE . 'data/config.db.php')) {
if (!@file_put_contents(DIR_ENGINE . 'data/config.db.php', $result))
throw new Exception(Errors::installError('errorFiles'));
}
return true;
}
catch (exception $e) {
return $e->getMessage();
}
}
public function start($adminemail, $admin)
{
try {
//Устанавливаем БД
if (!$this->newDB())
throw new Exception(Errors::installError('errorDB') . $this->newDB());
//Заливаем таблицы
if (!$this->TableCityPortalEngine())
throw new Exception(Errors::installError('errorTableDB'));
//Создаем администратора
$login = Simple::getClearDB($admin[0]);
$email = Simple::getClearDB($admin[1]);
$password = $admin[2];
if (!$this->newAdmin($login, $email, $password))
throw new Exception(Errors::installError('errorUsers'));
//Создаем файл конфигурации админа
if (!file_exists(DIR_ENGINE . 'data/config.cpe.php')) {
$filesarray = array("<?php\n define('ADMINEMAIL','$adminemail');\n?>");
$file = @file_put_contents(DIR_ENGINE . 'data/config.cpe.php', $filesarray);
if (!$file)
throw new Exception(Errors::installError('errorFiles'));
return true;
}
}
catch (exception $e) {
return $e->getMessage();
}
}
private function newDB()
{
//Проверяем существует ли БД
$db = $this->connect->query("SHOW DATABASE LIKE" . DB_DATABSE . "");
//Если БД нет, то создаем
if (!empty($db)) {
if ($this->connect->query("CREATE DATABASE IF NOT EXISTS " . DB_DATABASE . "")) {
echo "Пожалуйста измените файл config.db.php и замените строку
define('DB_DATABASE', ''); на
define ('DB_DATABASE',DB_DATABASE)";
exit;
} else {
//Записываем данные об ошибке
if (@file_put_contents(DIR_ENGINE . 'install/errors/errors.dat', $this->connect->
error . __file__ . __line__ . "\n"))
die(Errors::installError('errorsFileDB'));
}
}
return true;
}
public function TableCityPortalEngine()
{
//Если БД существует, создаем таблицы
$sql = $this->connect;
$sql->query('set names utf8');
$sql->query(" SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 ");
$sql->query(" SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; ");
$sql->query(" SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL' ");
$sql->query(" CREATE SCHEMA IF NOT EXISTS" . DB_DATABASE .
"DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ");
$users = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`users` (
`idusers` INT NOT NULL AUTO_INCREMENT COMMENT 'id - Зарегистрированного' ,
`login` VARCHAR(85) NOT NULL COMMENT 'Логин юзера, должен быть уникальный и состоять только из латинских букв и цифр , так же должен быть не более 20 символов' ,
`email` VARCHAR(85) NOT NULL COMMENT 'На него приходит уведомление о регистрации, так же нужен для авторизации, должен быть уникальным и реально существующим. не более 25 символов' ,
`password` VARCHAR(45) NOT NULL COMMENT 'Пароль пользователя, должен содержать не менее 7 символов и не более 20. Должен быть закодирован в мд5+соль. При потере, генерация нового пароля и перезаписывание старого' ,
`role` TINYINT NOT NULL DEFAULT 0 COMMENT '(роль пользователя 0 - Просто гость, 1 - Авторированный юзер, 2 - Автор, 3 Админ)\nПо умалчанию после авторизации, записуется 1, дефолт = 0, первому юзеру, авторизированному при инсталяции по умолчанию записывается 3 ' ,
PRIMARY KEY (`idusers`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$articles = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`articles` (
`idarticles` INT NOT NULL AUTO_INCREMENT COMMENT 'id - Уникальный (для статей)' ,
`title` VARCHAR(45) NOT NULL COMMENT 'Заголовок статьи' ,
`description` VARCHAR(85) NOT NULL COMMENT 'Описание статьи' ,
`keywords` VARCHAR(85) NOT NULL COMMENT 'Ключевые слова статьи' ,
`text` TEXT NOT NULL COMMENT 'Текст статьи' ,
`state` TINYINT NOT NULL COMMENT '0-черновик,1-опубликованна' ,
`date_create` VARCHAR(45) NOT NULL COMMENT 'Дата создания' ,
`date_edit` VARCHAR(45) NULL COMMENT 'Дата последнего изминения' ,
`users_idusers` INT NOT NULL ,
PRIMARY KEY (`idarticles`) ,
INDEX `fk_articles_users1` (`users_idusers` ASC) ,
CONSTRAINT `fk_articles_users1`
FOREIGN KEY (`users_idusers` )
REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$rols = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`rols` (
`idrols` INT NOT NULL AUTO_INCREMENT ,
`roleid` INT NOT NULL COMMENT '(роль юзера 0,1,2,3) ' ,
`textrole` VARCHAR(45) NOT NULL DEFAULT 'Гость' COMMENT 'В зависимости от роли пользователя: (0- Гость,1-Участник,2-Автор,3-Админ)' ,
`users_idusers` INT NOT NULL ,
PRIMARY KEY (`idrols`, `users_idusers`) ,
INDEX `fk_rols_users` (`users_idusers` ASC) ,
CONSTRAINT `fk_rols_users`
FOREIGN KEY (`users_idusers` )
REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$settings = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`settings` (
`idsettings` INT NOT NULL ,
`access` TINYINT NOT NULL COMMENT '( 0 Запрещать, 1 разрешать, 2 запрещать гостям => просмотр раздела)' ,
`offline` TINYINT NOT NULL DEFAULT 1 COMMENT 'Сайт (0 - закрыт, 1 -открыт)' ,
`editor` TINYINT NOT NULL DEFAULT 1 COMMENT 'Добавление статей (0- без редактора, 1 - с редактором) ' ,
`modules` TINYINT NOT NULL DEFAULT 1 COMMENT 'Модули (0 - не использовать, 1 использовать)' ,
PRIMARY KEY (`idsettings`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$files = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`files` (
`idfiles` INT NOT NULL AUTO_INCREMENT ,
`path` VARCHAR(45) NOT NULL COMMENT 'Путь к файлу' ,
`extension` VARCHAR(45) NULL COMMENT 'Расширение файла, например .gif или .jpg' ,
`type` VARCHAR(45) NOT NULL COMMENT 'mime тип файла, например image/gif или text/html' ,
`users_idusers` INT NOT NULL ,
PRIMARY KEY (`idfiles`) ,
INDEX `fk_files_users1` (`users_idusers` ASC) ,
CONSTRAINT `fk_files_users1`
FOREIGN KEY (`users_idusers` )
REFERENCES " . DB_DATABASE . ".`users` (`idusers` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$widgets = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`widgets` (
`idwidgets` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(55) NOT NULL COMMENT 'Имя модуля' ,
`head` VARCHAR(255) NOT NULL COMMENT 'Заголовок модуля' ,
`template` VARCHAR(105) NOT NULL COMMENT '(имя шаблона или путь к нему) пример admin_autorization.php' ,
PRIMARY KEY (`idwidgets`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$errors = $sql->query("
CREATE TABLE IF NOT EXISTS " . DB_DATABASE . ".`errors` (
`iderrors` INT NOT NULL AUTO_INCREMENT ,
`module` VARCHAR(45) NOT NULL COMMENT 'Модуль(виджет) в котором произошла ошибка' ,
`message` TEXT NOT NULL COMMENT 'Текст ошибки сообщения' ,
PRIMARY KEY (`iderrors`) )
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci
");
$sql->query(" SET SQL_MODE=@OLD_SQL_MODE ");
$sql->query(" SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS ");
$sql->query(" SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS ");
if (!$users)
return false;
if (!$articles)
return false;
if (!$rols)
return false;
if (!$settings)
return false;
if (!$files)
return false;
if (!$widgets)
return false;
if (!$errors)
return false;
return true;
}
//Добавление администратора
private function newAdmin($login, $email, $password)
{
$db = $this->connect;
$insert_admin = "INSERT INTO users (login,email,password,role)
VALUES ('$login','$email','$password',3)";
$result = $db->query($insert_admin);
if (!$result)
return false;
return true;
}
}
?>