\GB_DBase
Класс работы с базой данных
Synopsis
- // constants
- const MODE_INSERT = 'INSERT';
- const MODE_IGNORE = 'IGNORE';
- const MODE_REPLACE = 'REPLACE';
- const MODE_UPDATE = 'UPDATE';
- const MODE_DUPLICATE = 'DUPLICATE';
- // members
- protected MySQLi $db;
- protected $host;
- public null|string|GB_Error $error;
- public integer $num_queries = 0;
- public bool $show_errors = false;
- public bool $suppress_errors = false;
- public $queries;
- public $last_query;
- public string $last_error = '';
- public integer $rows_affected = 0;
- public integer $insert_id = 0;
- // methods
- public void __construct()
- public bool __destruct()
- public static string make_regex()
- public static string make_condition()
- public false|void bail()
- public bool connect()
- public null|string db_version()
- public GB_Error check_database_version()
- public bool has_cap()
- public string|array table_escape()
- public string table_unescape()
- public string|array field_escape()
- public string|array field_unescape()
- public mixed data_escape()
- public mixed like_escape()
- public string prepare_query()
- public bool show_errors()
- public bool hide_errors()
- public bool suppress_errors()
- public string get_caller()
- public void print_error()
- public void flush()
- public mixed query()
- public array|bool get_column()
- public bool|mixed get_cell()
- public array|bool get_table()
- public array|bool get_row()
- public number|bool set_row()
- public string _set_row_insert()
- public string _set_row_update()
- public integer|boolean delete()
- public array split_queries()
- public void remove_comments()
- public array create_table_patch()
Violations
PHPMessDetector
Line | Rule | Message |
---|---|---|
33 | ShortVariable | Avoid variables with short names like $db. Configured minimum length is 3. |
184 | ShortVariable | Avoid variables with short names like $ch. Configured minimum length is 3. |
543 | UnusedLocalVariable | Avoid unused local variables such as '$value'. |
716 - 769 | CyclomaticComplexity | The method query() has a Cyclomatic Complexity of 12. The configured cyclomatic complexity threshold is 10. |
716 - 769 | NPathComplexity | The method query() has an NPath complexity of 324. The configured NPath complexity threshold is 200. |
1008 - 1082 | CyclomaticComplexity | The method _set_row_update() has a Cyclomatic Complexity of 12. The configured cyclomatic complexity threshold is 10. |
1162 - 1329 | CyclomaticComplexity | The method create_table_patch() has a Cyclomatic Complexity of 31. The configured cyclomatic complexity threshold is 10. |
1162 - 1329 | NPathComplexity | The method create_table_patch() has an NPath complexity of 680064. The configured NPath complexity threshold is 200. |
1162 - 1329 | ExcessiveMethodLength | The method create_table_patch() has 168 lines of code. Current threshold is set to 100. Avoid really long methods. |
Checkstyle
Line | Column | Severity | Message |
---|---|---|---|
35 | 15 | error | There must not be more than one property declared per statement |
52 | 9 | error | The var keyword must not be used to declare a property |
52 | 9 | error | Visibility must be declared on property "$num_queries" |
64 | 9 | error | The var keyword must not be used to declare a property |
64 | 9 | error | Visibility must be declared on property "$show_errors" |
73 | 9 | error | The var keyword must not be used to declare a property |
73 | 9 | error | Visibility must be declared on property "$suppress_errors" |
82 | 9 | error | The var keyword must not be used to declare a property |
82 | 9 | error | Visibility must be declared on property "$queries" |
91 | 9 | error | The var keyword must not be used to declare a property |
91 | 9 | error | Visibility must be declared on property "$last_query" |
108 | 9 | error | The var keyword must not be used to declare a property |
108 | 9 | error | Visibility must be declared on property "$rows_affected" |
117 | 9 | error | The var keyword must not be used to declare a property |
117 | 9 | error | Visibility must be declared on property "$insert_id" |
122 | 5 | error | Visibility must be declared on method "__construct" |
124 | 21 | error | TRUE, FALSE and NULL must be lowercase; expected "null" but found "NULL" |
132 | 9 | error | Inline control structures are not allowed |
141 | 5 | error | Visibility must be declared on method "__destruct" |
144 | 9 | error | Inline control structures are not allowed |
147 | 16 | error | TRUE, FALSE and NULL must be lowercase; expected "true" but found "TRUE" |
166 | 12 | error | Method name "GB_DBase::make_regex" is not in camel caps format |
166 | 12 | error | Visibility must be declared on method "make_regex" |
166 | 51 | error | TRUE, FALSE and NULL must be lowercase; expected "true" but found "TRUE" |
168 | 9 | warning | Line exceeds 120 characters; contains 151 characters |
171 | 13 | error | Inline control structures are not allowed |
187 | 87 | warning | Line exceeds 120 characters; contains 163 characters |
189 | 9 | error | Inline control structures are not allowed |
211 | 12 | error | Method name "GB_DBase::make_condition" is not in camel caps format |
211 | 12 | error | Visibility must be declared on method "make_condition" |
211 | 55 | error | TRUE, FALSE and NULL must be lowercase; expected "true" but found "TRUE" |
213 | 9 | warning | Line exceeds 120 characters; contains 151 characters |
216 | 13 | error | Inline control structures are not allowed |
229 | 9 | error | Inline control structures are not allowed |
251 | 13 | error | Inline control structures are not allowed |
253 | 13 | error | Expected 1 space after ELSE keyword; newline found |
253 | 13 | error | Inline control structures are not allowed |
275 | 9 | error | Inline control structures are not allowed |
290 | 17 | error | Space before opening parenthesis of function call prohibited |
297 | 1 | warning | Line exceeds 120 characters; contains 234 characters |
324 | 12 | error | Method name "GB_DBase::db_version" is not in camel caps format |
336 | 12 | error | Method name "GB_DBase::check_database_version" is not in camel caps format |
339 | 9 | error | Inline control structures are not allowed |
340 | 168 | warning | Line exceeds 120 characters; contains 168 characters |
354 | 12 | error | Method name "GB_DBase::has_cap" is not in camel caps format |
383 | 5 | error | Method name "GB_DBase::table_escape" is not in camel caps format |
383 | 5 | error | Visibility must be declared on method "table_escape" |
395 | 13 | error | Inline control structures are not allowed |
411 | 5 | error | Method name "GB_DBase::table_unescape" is not in camel caps format |
411 | 5 | error | Visibility must be declared on method "table_unescape" |
427 | 5 | error | Method name "GB_DBase::field_escape" is not in camel caps format |
427 | 5 | error | Visibility must be declared on method "field_escape" |
435 | 11 | error | Expected 1 space after ELSE keyword; newline found |
435 | 11 | error | Inline control structures are not allowed |
448 | 5 | error | Method name "GB_DBase::field_unescape" is not in camel caps format |
448 | 5 | error | Visibility must be declared on method "field_unescape" |
450 | 9 | error | Inline control structures are not allowed |
459 | 9 | error | Inline control structures are not allowed |
476 | 5 | error | Method name "GB_DBase::data_escape" is not in camel caps format |
476 | 5 | error | Visibility must be declared on method "data_escape" |
487 | 11 | error | Inline control structures are not allowed |
490 | 9 | error | Inline control structures are not allowed |
493 | 9 | error | Expected 1 space after ELSE keyword; newline found |
493 | 9 | error | Inline control structures are not allowed |
506 | 5 | error | Method name "GB_DBase::like_escape" is not in camel caps format |
506 | 5 | error | Visibility must be declared on method "like_escape" |
525 | 5 | error | Method name "GB_DBase::prepare_query" is not in camel caps format |
525 | 5 | error | Visibility must be declared on method "prepare_query" |
532 | 9 | warning | Line exceeds 120 characters; contains 129 characters |
534 | 9 | warning | Line exceeds 120 characters; contains 128 characters |
536 | 9 | warning | Line exceeds 120 characters; contains 122 characters |
545 | 1 | error | Line indented incorrectly; expected at least 12 spaces, found 0 |
546 | 1 | error | Line indented incorrectly; expected at least 12 spaces, found 0 |
547 | 1 | error | Blank line found at end of control structure |
552 | 69 | error | Expected 1 space after USE keyword; found 0 |
553 | 50 | warning | Line exceeds 120 characters; contains 130 characters |
586 | 12 | error | Method name "GB_DBase::show_errors" is not in camel caps format |
603 | 12 | error | Method name "GB_DBase::hide_errors" is not in camel caps format |
623 | 12 | error | Method name "GB_DBase::suppress_errors" is not in camel caps format |
640 | 12 | error | Method name "GB_DBase::get_caller" is not in camel caps format |
654 | 12 | error | Method name "GB_DBase::print_error" is not in camel caps format |
658 | 9 | error | Inline control structures are not allowed |
666 | 9 | error | Inline control structures are not allowed |
671 | 9 | error | Inline control structures are not allowed |
672 | 131 | warning | Line exceeds 120 characters; contains 131 characters |
673 | 9 | error | Expected 1 space after ELSE keyword; newline found |
673 | 9 | error | Inline control structures are not allowed |
679 | 9 | error | Inline control structures are not allowed |
716 | 5 | error | Visibility must be declared on method "query" |
723 | 9 | error | Inline control structures are not allowed |
732 | 9 | error | Inline control structures are not allowed |
738 | 9 | error | Inline control structures are not allowed |
750 | 13 | error | Inline control structures are not allowed |
761 | 13 | error | Inline control structures are not allowed |
786 | 5 | error | Method name "GB_DBase::get_column" is not in camel caps format |
786 | 5 | error | Visibility must be declared on method "get_column" |
789 | 9 | error | Inline control structures are not allowed |
794 | 13 | error | Inline control structures are not allowed |
794 | 47 | error | Expected 0 spaces before semicolon; newline found |
797 | 13 | error | Inline control structures are not allowed |
797 | 47 | error | Expected 0 spaces before semicolon; newline found |
817 | 5 | error | Method name "GB_DBase::get_cell" is not in camel caps format |
817 | 5 | error | Visibility must be declared on method "get_cell" |
820 | 9 | error | Inline control structures are not allowed |
823 | 45 | error | TRUE, FALSE and NULL must be lowercase; expected "null" but found "NULL" |
841 | 5 | error | Method name "GB_DBase::get_table" is not in camel caps format |
841 | 5 | error | Visibility must be declared on method "get_table" |
844 | 9 | error | Inline control structures are not allowed |
849 | 13 | error | Inline control structures are not allowed |
849 | 49 | error | Expected 0 spaces before semicolon; newline found |
852 | 13 | error | Inline control structures are not allowed |
852 | 49 | error | Expected 0 spaces before semicolon; newline found |
871 | 5 | error | Method name "GB_DBase::get_row" is not in camel caps format |
871 | 5 | error | Visibility must be declared on method "get_row" |
874 | 9 | error | Inline control structures are not allowed |
918 | 5 | error | Method name "GB_DBase::set_row" is not in camel caps format |
918 | 5 | error | Visibility must be declared on method "set_row" |
925 | 9 | error | Inline control structures are not allowed |
947 | 5 | warning | Method name "_set_row_insert" should not be prefixed with an underscore to indicate visibility |
947 | 5 | error | Method name "GB_DBase::_set_row_insert" is not in camel caps format |
947 | 5 | error | Visibility must be declared on method "_set_row_insert" |
953 | 9 | error | Inline control structures are not allowed |
955 | 9 | error | Inline control structures are not allowed |
957 | 9 | error | Inline control structures are not allowed |
973 | 44 | error | Expected 1 space after USE keyword; found 0 |
1008 | 5 | warning | Method name "_set_row_update" should not be prefixed with an underscore to indicate visibility |
1008 | 5 | error | Method name "GB_DBase::_set_row_update" is not in camel caps format |
1008 | 5 | error | Visibility must be declared on method "_set_row_update" |
1010 | 9 | error | Inline control structures are not allowed |
1032 | 1 | error | Line indented incorrectly; expected at least 12 spaces, found 0 |
1032 | 1 | error | Multi-line function call not indented correctly; expected 16 spaces but found 0 |
1033 | 1 | error | Line indented incorrectly; expected at least 12 spaces, found 0 |
1033 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1033 | 12 | error | Closing parenthesis of a multi-line function call must be on a line by itself |
1034 | 1 | error | Blank line found at end of control structure |
1038 | 54 | warning | Line exceeds 120 characters; contains 178 characters |
1051 | 13 | error | Inline control structures are not allowed |
1066 | 13 | error | Inline control structures are not allowed |
1072 | 17 | error | Inline control structures are not allowed |
1097 | 5 | error | Visibility must be declared on method "delete" |
1110 | 9 | error | Inline control structures are not allowed |
1127 | 5 | error | Method name "GB_DBase::split_queries" is not in camel caps format |
1127 | 5 | error | Visibility must be declared on method "split_queries" |
1129 | 16 | error | Opening parenthesis of a multi-line function call must be the last content on the line |
1130 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1130 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1131 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1131 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1132 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1132 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1133 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1133 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1134 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1134 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1135 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1135 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1136 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1136 | 1 | error | Multi-line function call not indented correctly; expected 12 spaces but found 0 |
1137 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1137 | 1 | error | Multi-line function call not indented correctly; expected 8 spaces but found 0 |
1137 | 11 | error | Only one argument is allowed per line in a multi-line function call |
1137 | 16 | error | Only one argument is allowed per line in a multi-line function call |
1137 | 35 | error | Closing parenthesis of a multi-line function call must be on a line by itself |
1140 | 5 | error | Method name "GB_DBase::remove_comments" is not in camel caps format |
1140 | 5 | error | Visibility must be declared on method "remove_comments" |
1143 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1144 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1145 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1146 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1147 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1148 | 1 | error | Line indented incorrectly; expected at least 8 spaces, found 0 |
1162 | 5 | error | Method name "GB_DBase::create_table_patch" is not in camel caps format |
1162 | 5 | error | Visibility must be declared on method "create_table_patch" |
1178 | 9 | error | Inline control structures are not allowed |
1191 | 169 | warning | Line exceeds 120 characters; contains 169 characters |
1201 | 27 | error | TRUE, FALSE and NULL must be lowercase; expected "true" but found "TRUE" |
1214 | 13 | error | Inline control structures are not allowed |
1223 | 51 | error | Blank line found at start of control structure |
1232 | 132 | warning | Line exceeds 120 characters; contains 132 characters |
1233 | 21 | warning | Line exceeds 120 characters; contains 163 characters |
1239 | 134 | warning | Line exceeds 120 characters; contains 134 characters |
1240 | 123 | warning | Line exceeds 120 characters; contains 123 characters |
1243 | 130 | warning | Line exceeds 120 characters; contains 130 characters |
1244 | 25 | warning | Line exceeds 120 characters; contains 181 characters |
1273 | 52 | error | Blank line found at start of control structure |
1281 | 85 | error | TRUE, FALSE and NULL must be lowercase; expected "true" but found "TRUE" |
1285 | 64 | error | Blank line found at start of control structure |
1289 | 17 | error | Inline control structures are not allowed |
1291 | 17 | error | Inline control structures are not allowed |
1294 | 17 | error | Inline control structures are not allowed |
1300 | 21 | error | Inline control structures are not allowed |
1305 | 21 | error | Inline control structures are not allowed |
1314 | 21 | warning | Line exceeds 120 characters; contains 136 characters |
1317 | 17 | warning | Line exceeds 120 characters; contains 184 characters |
Constants
Name | Value |
---|---|
MODE_INSERT | 'INSERT' |
MODE_IGNORE | 'IGNORE' |
MODE_REPLACE | 'REPLACE' |
MODE_UPDATE | 'UPDATE' |
MODE_DUPLICATE | 'DUPLICATE' |
Members
protected
- $db — MySQLi
- $host
public
- $error
—
null|string|GB_Error
The last error. - $insert_id
—
int
The ID generated for an AUTO_INCREMENT column by the previous query (usually INSERT). - $last_error
—
string
The last error during query. - $last_query
—
array
Last query made. - $num_queries
—
int
Amount of queries made - $queries
—
array
Saved queries that were executed. - $rows_affected
—
int
Count of affected rows by previous query - $show_errors
—
bool
Whether to show SQL/DB errors. - $suppress_errors
—
bool
Whether to suppress errors during the DB bootstrapping.
Methods
public
- __construct() — Создание экземпляра класса.
- __destruct() — Уничтожаем экземпляр класса.
- _set_row_insert() — Making query for inserting new data.
- _set_row_update() — Making query for updating data
- bail() — Wraps errors in a nice header and footer and dies.
- check_database_version() — Whether MySQL database is at least the required minimum version.
- connect() — Connect to and select database.
- create_table_patch() — {@internal Missing Short Description}}
- data_escape() — Экранирование значения переменной, учитывая его тип.
- db_version() — The database version number.
- delete() — Delete records from table.
- field_escape() — Экранирование имя поля.
- field_unescape() — Unescape fields names.
- flush() — Kill cached query results.
- get_caller() — Retrieve the name of the function that called this class.
- get_cell() — Получения результата скалярного запроса (состоящего из одной строки и одной ячейки в ней).
- get_column() — Получение результата запроса, который состоит из нескольких строк и одного столбца.
- get_row() — Получение результата запроса, который состоит из одной строки.
- get_table() — Получение результата табличного запроса (состоящего из нескольких строк и нескольких столбцов).
- has_cap() — Determine if a database supports a particular feature.
- hide_errors() — Disables showing of database errors.
- like_escape() — Экранирование значения переменной для оператора LIKE.
- make_condition() — Формирование из строки с метасимволами условного выражения для поиска через оператор LIKE.
- make_regex() — Формирование из строки с метасимволами регулярного выражения для поиска через оператор RLIKE.
- prepare_query() — Подготовка SQL-запроса к исполнению.
- print_error() — Print SQL/DB error.
- query() — Отправка запроса в MySQL и слежение за ошибками.
- remove_comments()
- set_row() — Вставка в таблицу новых данных или обновление существующих.
- show_errors() — Enables showing of database errors.
- split_queries() — Separate individual queries into an array.
- suppress_errors() — Whether to suppress database errors.
- table_escape() — Добавление префикса к имени таблицы.
- table_unescape() — Unescape table name.
History
-
2017-05-29T22:42:45+00:00 (commit #ba5872a)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
Core remastered to Bootstrap CSS framework.
-
2017-05-17T09:50:09+00:00 (commit #bcd6e9c)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
PSR-2
-
2017-05-16T19:52:59+00:00 (commit #fd0a296)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
PSR-2 applied
-
2016-01-25T17:45:50+00:00 (commit #97e2af2)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
Pre v.3.0
-
2015-04-01T19:55:20+00:00 (commit #0f7e258)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
#25: Механизм хранения опций системы https://github.com/Limych/GeniBase/issues/issue/25
-
2015-03-28T21:15:41+00:00 (commit #158813e)
Author: Калёнов Денис Михайлович (a-KaDeMi-k@yandex.ru) / Commiter: Калёнов Денис Михайлович (a-KaDeMi-k@yandex.ru)
ję v2
-
2015-03-26T21:20:33+00:00 (commit #fa63be8)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
To all files added checking that class GB_Hooks are exists.
-
2015-03-25T21:34:13+00:00 (commit #4a7821b)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
Hooks API incapsulated to static class.
-
2015-03-23T11:15:12+00:00 (commit #a0eff45)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
New pagination function. And fixed error of cron usage.
-
2015-03-17T22:34:17+00:00 (commit #28c49e6)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
#23: Написать автоматические тесты для всей системы https://github.com/Limych/GeniBase/issues/issue/23
-
2015-03-17T17:00:10+00:00 (commit #4176d2e)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
#20: Перевод всего встроенного в систему текста на gettext. Английская и русская локализации системы https://github.com/Limych/GeniBase/issues/issue/20
-
2015-03-13T19:41:13+00:00 (commit #839eee5)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
Setting user ID cookie and some minor code changes. #50
-
2015-03-11T20:40:06+00:00 (commit #d811aca)
Author: Limych (andrey@khrolenok.ru) / Commiter: Limych (andrey@khrolenok.ru)
Added actions.