PHP MySQL создание и удаление таблицы

Запускаем локальный сервер, воспользовавшись программой XAMPP Control Panel

XAMPP Control Panel

В браузере переходим http://localhost/phpmyadmin/ и создаём базу данных с именем site с кодировкой utf8_general_ci

Создание БД MySQL

Также создаем учетные записи пользователя MySQL и указываем пароль, имя пользователя.

В директории C:\xampp\htdocs\site создаём файл index.php

Теперь создадим тестовую базу данных c товарами при помощи php кода (CREATE):

CREATE TABLE <Имя таблицы>

(<Имя столбца 1> <Тип столбца 1> <Свойства столбца 1>,

<Имя столбца 2> <Тип столбца 2> <Свойства столбца 2>,

<Имя столбца N> <Тип столбца N> <Свойства столбца N>,

[<Информация о ключевых столбцах и индексах>])

[<Свойства таблицы>];

<head>
<title>MySQL создание таблицы</title>
</head>
<body>

<?php
$server="localhost";
$name="user";
$pas="123";
$dbname="site";
$link = new mysqli($server,$name,$pas,$dbname);

if ($link->connect_errno) {
    printf("Нет соединения c БД %s\n", $link->connect_error);
    exit();
}

// создание таблицы
$sql = "CREATE TABLE IF NOT EXISTS product(
id INT(8) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
description VARCHAR(100) NOT NULL,
cost DECIMAL(8,2),
date_wr TIMESTAMP)
ENGINE InnoDB CHARACTER SET utf8;
";

if ($link->query($sql) === TRUE) {
   echo "Таблица product создана";
} else {
   echo "Ошибка создания таблицы product" . $link->error;
}

$link->close();

?>

где

id INT(8) – идентификатор записи, который автоматически нумерует строки таблицы, по сути номер товара;

UNSIGNED — отключение отрицательных чисел, UNSIGNED INT до 4294967295, BIGINT до 18446744073709551615, FLOAT и DOUBLE — вещественные типы данных;

AUTO_INCREMENT — автоматически нумерует строки таблицы с увеличением на единицу;

PRIMARY KEY — уникальный первичный ключ;
name VARCHAR(50) NOT NULL — название товара (50 символов);
VARCHAR — строковой тип (количество символов ограничено от 0 до 255), аналог TEXT — отличается от VARCHAR количеством символов 65535, MEDIUMTEXT до 16777215 символов, LONGTEXT до 4294967295 символов;

NULL – константа, указывает на отсутствие значения;

NOT NULL — обязательное поле для заполнения;

description VARCHAR(100) NOT NULL — описание товара (100 символов);
price DECIMAL(8,2) — цена товара, запись 8,2 означает, что цена содержит до  шести целых чисел и двух дробных;
DECIMAL — число с плавающей запятой;
date_wr TIMESTAMP — дата и время создания записи в формате 2021-03-13 18:22:01, по умолчанию это формат«YYYYMMDDHHMMSS» (TIMESTAMP(14)), также есть форматы — «YYMMDDHHMMSS» (TIMESTAMP(12)), «YYYYMMDD» (TIMESTAMP(8)), «YYMMDD» (TIMESTAMP(6));
ENGINE InnoDB — обеспечивает поддержание целостности связей между таблицами;

ENGINE MyISAM — увеличивает скорость, но не обеспечивает целостность;

CHARACTER SET utf8 — кодировка utf-8.

При запуске скрипта в phpmyadmin появится таблица product соответствующими полями и пустыми данными.

phpMyAdmin база данных


Теперь заполним созданную таблицу данными, для этого выполним команду вставки INSERT

INSERT [INTO] <Имя таблицы>

[(<Список столбцов>)]

VALUES

(<Список значений 1>),

(<Список значений 2>),

(<Список значений N>);

<head>
<title>MySQL вставка данных в таблицу</title>
</head>
<body>

<?php
$server="localhost";
$name="user";
$pas="123";
$dbname="site";
$link = new mysqli($server,$name,$pas,$dbname);

if ($link->connect_errno) {
    printf("Нет соединения c БД %s\n", $link->connect_error);
    exit();
}

// добавления данных в таблицу
$sql = "INSERT INTO `product` (`id`, `name`, `description`, `cost`, `date_wr`) VALUES 
(NULL, 'Молоко', '3 литра', '150', current_timestamp()), 
(NULL, 'Куриные яйца', '10 штук', '80', current_timestamp());
";

if ($link->query($sql) === TRUE) {
   echo "Данные в таблицу product добавлены";
} else {
   echo "Ошибка добавления данных в таблицу product" . $link->error;
}

$link->close();

?>

добавление данных в базу данных


Удаление данных из таблицы с помощью условия

<head>
<title>MySQL удаление всех данных кроме первой записи</title>
</head>
<body>

<?php
$server="localhost";
$name="user";
$pas="123";
$dbname="site";
$link = new mysqli($server,$name,$pas,$dbname);

if ($link->connect_errno) {
    printf("Нет соединения c БД %s\n", $link->connect_error);
    exit();
}
// удаление всех записей из таблицы, кроме первой
$sql = "DELETE FROM product WHERE id > 1;";

if ($link->query($sql) === TRUE) {
   echo "Все данные пусты кроме первой записи";
} else {
   echo "Ошибка удаления данных из MySQL кроме первой записи" . $link->error;
}

$link->close();

?>

удаление из MySQL всех записей кроме первой


Чтобы очистить таблицу базы данных не повредив её структуры можно воспользоваться командой TRUNCATE

<html>
<head>
<title>MySQL очищаем таблицу от данных без изменения структуры</title>
</head>
<body>

<?php
$server="localhost";
$name="user";
$pas="123";
$dbname="site";
$link = new mysqli($server,$name,$pas,$dbname);

if ($link->connect_errno) {
    printf("Нет соединения c БД %s\n", $link->connect_error);
    exit();
}

// очистка таблицы без изменения ее структуры
$sql = "TRUNCATE TABLE product";

if ($link->query($sql) === TRUE) {
   echo "Таблица product пустая";
} else {
   echo "Ошибка очистки таблицы product" . $link->error;
}

$link->close();

?>


Для удаление таблицы из базы данных можно воспользоваться следующим кодом (DROP):

<html>
<head>
<title>MySQL удаление структуры таблицы</title>
</head>
<body>

<?php
$server="localhost";
$name="user";
$pas="123";
$dbname="site";
$link = new mysqli($server,$name,$pas,$dbname);

if ($link->connect_errno) {
    printf("Нет соединения c БД %s\n", $link->connect_error);
    exit();
}

// удаление таблицы
$sql = "DROP TABLE product";

if ($link->query($sql) === TRUE) {
   echo "Таблица product удалена";
} else {
   echo "Ошибка удаления таблицы product" . $link->error;
}

$link->close();

?>

Пример запроса на удаления строк (дубликатов) из БД

DELETE FROM wp_posts WHERE post_type =«revision»;

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

332

Leave a Reply

Ваш адрес email не будет опубликован.