<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Запрос SQL на создание (изменение) пользователя

Запрос SQL на создание (изменение) пользователя

В этой небольшой статье мы разберём SQL-запрос, который позволяет добавлять новых пользователей к базе данных, а также изменять параметры уже существующих.

Давайте приведу сразу пример SQL-запроса на создание нового пользователя базы данных:

GRANT SELECT , INSERT , UPDATE , CREATE , PROCESS ON * . * TO 'MyUser'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 10

Теперь поясняю синтаксис команды GRANT. Вначале идёт название команды, затем мы задаём, какие права будут у пользователя. Подробно о правах пользователей я уже писал, поэтому пояснять это не буду. После описания привилегий идёт предлог "ON". Тут можно указать, к какой таблице или базе данных данный пользователь будет иметь доступ. В данном случае мы написали "* . *", что означает, что данный пользователь имеет доступ к любой таблице любой базы данных. Мы могли бы написать так: "db_name . *", что означало бы, что пользователь может получить доступ к любой таблице базы данных "db_name". Сразу после описания границ доступа идёт предлог "TO", после которого мы задаём имя пользователя "MyUser" и хост, с которого он будет иметь доступ к базе данных. В нашем случае это "localhost". После идёт "IDENTIFIED BY" и затем сразу пароль. И последняя часть - это "WITH GRANT OPTION", в которой мы задаём ограничение на использование ресурсов. О них мы также уже говорили в статье: права пользователя.

Теперь давайте разберём SQL-запрос на изменение существующих пользователей:

GRANT SELECT , INSERT , UPDATE , CREATE , PROCESS ON * . * TO 'MyUser'@'test1.ru' IDENTIFIED BY PASSWORD '565491d704013245' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 10 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 10

Как видите, синтаксис АБСОЛЮТНО такой же, как и на создание нового пользователя. Единственное отличие - это то, что пользователь "MyUser" уже существует. Вот и всё.

И, наконец, удаление пользователя из базы данных. Тут есть один интересный момент. Дело в том, что данные пользователей базы данных сами хранятся в таблицах базы данных. Поэтому, чтобы удалить пользователя надо удалить записи в соответствующих таблицах. Вот код:

DELETE FROM `user` WHERE CONVERT( User USING cp1251 ) = CONVERT( 'MyUser' USING cp1251 ) AND CONVERT( Host USING cp1251 ) = CONVERT( 'test1.ru' USING cp1251 )
DELETE FROM `db` WHERE CONVERT( User USING cp1251 ) = CONVERT( 'MyUser' USING cp1251 ) AND CONVERT( Host USING cp1251 ) = CONVERT( 'test1.ru' USING cp1251 )
DELETE FROM `tables_priv` WHERE CONVERT( User USING cp1251 ) = CONVERT( 'MyUser' USING cp1251 ) AND CONVERT( Host USING cp1251 ) = CONVERT( 'test1.ru' USING cp1251 )
DELETE FROM `columns_priv` WHERE CONVERT( User USING cp1251 ) = CONVERT( 'MyUser' USING cp1251 ) AND CONVERT( Host USING cp1251 ) = CONVERT( 'test1.ru' USING cp1251 )

Много, не спорю, но это единственный способ удалить пользователя. Либо вручную через PHPMyAdmin. Единственное, что надо изменить в этом шаблоне - это имя пользователя и хост, а всё остальное Вам вряд ли придётся менять.

Вот мы с Вами и рассмотрели SQL-запросы на создание, редактирование и удаление пользователей базы данных.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (4):

Adrenalin Adrenalin 07.12.2011 16:48:22

Нифига не понял! Где нужно создать таблицу для добавления в неё чего-нибуть??? У меня только денвер. Хочю вручную создать самую элементарную таблицу, но не знаю где и как!

Ответить

Admin Admin 07.12.2011 17:02:21

1. http://myrusakov.ru/struktura-basy-dannyh.html 2. http://myrusakov.ru/phpmyadmin.html 3. http://myrusakov.ru/phpmyadmin-table.html

Ответить

Adrenalin Adrenalin 05.03.2013 03:36:13

А можно в базе создавать ид по текущему времени??? Или как сделать так, чтобы на место удалённого коммента подставлялся его ид при новой записи, а затем уж ид на 1 больше?

Ответить

Admin Admin 05.03.2013 10:44:40

Функция time() вернёт текущее время, оно будет уникально для данной секунды.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.