20250808
This commit is contained in:
78
help/basic_usage/create_table.md
Normal file
78
help/basic_usage/create_table.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# Создание таблицы
|
||||
|
||||
Итак, в [прошлой статье](usage_preparation.md) мы создали класс для работы с базой данных. Далее, мы научимся создавать
|
||||
таблицу в базе данных.
|
||||
|
||||
Перед созданием таблицы, нужно написать класс-модель, реализующий
|
||||
интерфейс [IDBItem](../class_desc/interfaces/IDBItem.md) и с помощью атрибутов:
|
||||
|
||||
- [AutoIncrement](../class_desc/attributes/AutoIncrement.md),
|
||||
- [Check](../class_desc/attributes/Check.md),
|
||||
- [Compare](../class_desc/attributes/Compare.md),
|
||||
- [ConvertToDB](../class_desc/attributes/ConvertToDB.md),
|
||||
- [DataType](../class_desc/attributes/DataType.md),
|
||||
- [DefaultValue](../class_desc/attributes/DefaultValue.md),
|
||||
- [FieldName](../class_desc/attributes/FieldName.md),
|
||||
- [ForeignKey](../class_desc/attributes/ForeignKey.md),
|
||||
- [IgnoredInDB](../class_desc/attributes/IgnoredInDB.md),
|
||||
- [NotNull](../class_desc/attributes/NotNull.md),
|
||||
- [PrimaryKey](../class_desc/attributes/PrimaryKey.md),
|
||||
- [Unique](../class_desc/attributes/Unique.md)
|
||||
|
||||
настроить столбцы и поля.
|
||||
|
||||
Создадим далее макет класса, описывающего пользователя сайта.
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use goodboyalex\php_db_components_pack\attributes\AutoIncrement;
|
||||
use goodboyalex\php_db_components_pack\attributes\FieldName;
|
||||
use goodboyalex\php_db_components_pack\attributes\NotNull;
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
|
||||
class User implements IDBItem
|
||||
{
|
||||
/**
|
||||
* @var int $Id Идентификатор пользователя.
|
||||
*/
|
||||
#[PrimaryKey, NotNull, AutoIncrement, FieldName('id'), Unique]
|
||||
public int $Id = 0;
|
||||
|
||||
/**
|
||||
* @var string $Name Имя пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_name')]
|
||||
public string $Name = '';
|
||||
|
||||
/**
|
||||
* @var string $Email Почта пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_mail'), Unique]
|
||||
public string $Email = '';
|
||||
}
|
||||
```
|
||||
|
||||
Итак, у нас в таблице должно быть **3 столбца**:
|
||||
|
||||
| id | user_name | user_mail |
|
||||
|:--:|:---------:|:---------:|
|
||||
| - | - | - |
|
||||
|
||||
Значения во всех столбцах, кроме `user_name` должны быть уникальными, во всех столбцах не пустыми, а первичным ключом
|
||||
таблицы является столбец `id` с автозаполнением.
|
||||
|
||||
Теперь давайте создадим таблицу `user`:
|
||||
|
||||
```php
|
||||
if (!$db->CreateTable('user', "\\App\\Models\\User"))
|
||||
throw new PDOException("Ошибка создания таблицы: users");
|
||||
```
|
||||
|
||||
Таблица создана.
|
||||
|
||||
[Предыдущий пункт](usage_preparation.md) | [На главную](../index.md) | [Следующий пункт](insert_data.md)
|
63
help/basic_usage/insert_data.md
Normal file
63
help/basic_usage/insert_data.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# Вставка данных
|
||||
|
||||
Итак, в [прошлой статье](create_table.md) мы создали таблицу `users` в базе данных. Но она пока пуста. Далее, мы
|
||||
научимся добавлять данные в неё.
|
||||
|
||||
Для добавления одной строки нужно воспользоваться
|
||||
методом [Insert](../class_desc/classes/Database.md).
|
||||
|
||||
Создадим далее макет класса, описывающего пользователя сайта.
|
||||
|
||||
```php
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use goodboyalex\php_db_components_pack\attributes\AutoIncrement;
|
||||
use goodboyalex\php_db_components_pack\attributes\FieldName;
|
||||
use goodboyalex\php_db_components_pack\attributes\NotNull;
|
||||
use goodboyalex\php_db_components_pack\attributes\PrimaryKey;
|
||||
use goodboyalex\php_db_components_pack\attributes\Unique;
|
||||
use goodboyalex\php_db_components_pack\interfaces\IDBItem;
|
||||
|
||||
class User implements IDBItem
|
||||
{
|
||||
/**
|
||||
* @var int $Id Идентификатор пользователя.
|
||||
*/
|
||||
#[PrimaryKey, NotNull, AutoIncrement, FieldName('id'), Unique]
|
||||
public int $Id = 0;
|
||||
|
||||
/**
|
||||
* @var string $Name Имя пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_name')]
|
||||
public string $Name = '';
|
||||
|
||||
/**
|
||||
* @var string $Email Почта пользователя.
|
||||
*/
|
||||
#[NotNull, FieldName('user_mail'), Unique]
|
||||
public string $Email = '';
|
||||
}
|
||||
```
|
||||
|
||||
Итак, у нас в таблице должно быть **3 столбца**:
|
||||
|
||||
| id | user_name | user_mail |
|
||||
|:--:|:---------:|:---------:|
|
||||
| - | - | - |
|
||||
|
||||
Значения во всех столбцах, кроме `user_name` должны быть уникальными, во всех столбцах не пустыми, а первичным ключом
|
||||
таблицы является столбец `id` с автозаполнением.
|
||||
|
||||
Теперь давайте создадим таблицу `user`:
|
||||
|
||||
```php
|
||||
if (!$db->CreateTable('user', "\\App\\Models\\User"))
|
||||
throw new PDOException("Ошибка создания таблицы: users");
|
||||
```
|
||||
|
||||
Таблица создана.
|
||||
|
||||
[Предыдущий пункт](create_table.md) | [На главную](../index.md) | [Следующий пункт](../index.md)
|
@@ -31,4 +31,4 @@ $db = new Database($db_config, $onException);
|
||||
```
|
||||
|
||||
|
||||
[На главную](../index.md) | [Следующий пункт](../index.md)
|
||||
[На главную](../index.md) | [Следующий пункт](create_table.md)
|
Reference in New Issue
Block a user