Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/50: Рейтинг темы: голосов - 50, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
1

Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in

07.12.2012, 09:27. Просмотров 10253. Ответов 14
Метки нет (Все метки)

Здравствуйте! Подскажите как решить проблему с выдаваемыми ошибками:
ошибки
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


Вот сам файл install.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
<?php
//Подключение нужных файлов
require_once $_SERVER['DOCUMENT_ROOT'].'/engine/config.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);
    }
    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;
    }
}
?>
За ранее Благодарю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2012, 09:27
Ответы с готовыми решениями:

Ошибка Warning: mysqli::query() expects parameter 1 to be string, object given in
Добрый день! Пишу страницу логина вот код &lt;?php include_once 'db.php'; if (isset($_POST))...

Запрос рабочий но mysqli_query выдает ошибку Warning: mysqli_query(): Couldn't fetch mysqli in [Мой_Файл]
Фой код генерирует запрос INSERT INTO `users`(`login`, `email`, `password`, `lname`, `fname`,...

mysqli query
Подскажиет пожалуйста , что не так в запросе к бд ? (не создается таблица) &lt;?php require...

Непонятки с mysqli->query
Доброго времени суток. В общем такая проблема. Если запрос выполняется (т.е. находит результаты),...

14
602 / 577 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
07.12.2012, 09:37 2
попробуйте так
PHP
1
2
3
4
5
public function __construct()
    {
        $this->connect = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE)
                            or die(mysqli_connect_error());
    }
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 10:06  [ТС] 3
Цитата Сообщение от alpex Посмотреть сообщение
попробуйте так
Нет не помогло!
Хотя в выше приведенном примере install.php и выводит что установка завершена успешно но БД не заливаются.
Есть еще предложения как исправить?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
07.12.2012, 10:21 4
смотрите ошибки в самих запросах.
PHP
1
2
if(!$sql->query(......))
  throw new Exception ('Error: ' . $sql->mysqli_error());
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 10:47  [ТС] 5
Цитата Сообщение от KOPOJI Посмотреть сообщение
смотрите ошибки в самих запросах.
PHP
1
2
if(!$sql->query(......))
  throw new Exception ('Error: ' . $sql->mysqli_error());
Вы имеете ввиду запросы на создание таблиц в БД?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
07.12.2012, 10:59 6
может и там, здесь непонятно где именно, на какой строке эти ошибки, глючит подсветка..
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 11:03  [ТС] 7
Цитата Сообщение от KOPOJI Посмотреть сообщение
может и там, здесь непонятно где именно, на какой строке эти ошибки, глючит подсветка..
Вот install.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
<?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;
    }
}
?>
Вот теперь нормальная подсветка
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
07.12.2012, 11:12 8
Цитата Сообщение от nvros86 Посмотреть сообщение
Вот теперь нормальная подсветка
я имел в виду что номера строк не совпадали с реальными.
Чтобы не искать где это - проставьте вывод ошибок везде и смотрите где и в чем ошибки
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 11:16  [ТС] 9
Цитата Сообщение от KOPOJI Посмотреть сообщение
я имел в виду что номера строк не совпадали с реальными.
Чтобы не искать где это - проставьте вывод ошибок везде и смотрите где и в чем ошибки
Я так и понял вот тут ниже теперь номера строк совпадают с ошибками:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
<?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;
    }
}
?>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
07.12.2012, 11:32 10
ну так поменяйте во всех строках, где пишет ошибки на обработку ошибок, и в случае наличия оных - пробрасывания исключений (а лучше - для всех это прописать)
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 12:06  [ТС] 11
Цитата Сообщение от KOPOJI Посмотреть сообщение
ну так поменяйте во всех строках, где пишет ошибки на обработку ошибок, и в случае наличия оных - пробрасывания исключений (а лучше - для всех это прописать)
А подскажите как это сделать? Я только изучаю PHP

Добавлено через 26 минут
Так ошибки выдает при попытке заливки БД,
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 13:23  [ТС] 12
Вот добавлю еще исходники
0
Вложения
Тип файла: rar proba.rar (112.4 Кб, 10 просмотров)
602 / 577 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
07.12.2012, 13:26 13
Цитата Сообщение от nvros86 Посмотреть сообщение
А подскажите как это сделать? Я только изучаю PHP
везде где идет вызов query() добавьте
PHP
1
...->query(...) or die ($this->connect->mysqli_error());
0
0 / 0 / 0
Регистрация: 07.12.2012
Сообщений: 12
07.12.2012, 15:28  [ТС] 14
Цитата Сообщение от alpex Посмотреть сообщение
везде где идет вызов query() добавьте
PHP
1
...->query(...) or die ($this->connect->mysqli_error());
Нет не помогает те же ошибки выдает, выше постом исходники посмотрите может что найдете?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16816 / 6694 / 880
Регистрация: 12.06.2012
Сообщений: 19,968
07.12.2012, 15:32 15
как то так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
public function TableCityPortalEngine()
    {
        //Если БД существует, создаем таблицы
        if(!$sql = $this->connect) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query('set names utf8')) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL' ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$sql->query(" CREATE SCHEMA IF NOT EXISTS" . DB_DATABASE .
            "DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
        if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
         if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
 
         if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
 
         if(!$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
            ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
         if(!$sql->query(" SET SQL_MODE=@OLD_SQL_MODE ")) throw new Exception('Error: ' . $sql->mysqli_error());
         if(!$sql->query(" SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS ")) throw new Exception('Error: ' . $sql->mysqli_error());
         if(!$sql->query(" SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS ")) throw new Exception('Error: ' . $sql->mysqli_error());
 
        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;
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2012, 15:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Подскажите, как правильно работать с PDO / mysqli или Call to a member function query() on a non-object
Начинаю понемногу обучаться ООП. Ну раз ООП - так ООП и я решил попробовать ...

Mysqli - ошибка "Call to a member function query() on a non-object"
Добрый день, ошибка с объектом mysqli, как исправить? $mysqli = new mysqli($mysql_host,...

Warning: mysqli_query() expects parameter 1 to be mysqli
Здравствуйте, уважаемые форемчане. Только начал попытку изучения PHP и MySQL. Решил начать со...

Warning: mysqli_query() expects parameter 1 to be mysqli, null given
Здравствуйте. Как исправить эти ошибки &quot; Warning: mysqli_real_escape_string() expects exactly 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.