Создание и удаление таблиц в PHP

Создание и удаление таблиц




Создание и удаление таблиц (CREATE TABLE, DROP TABLE)

Удалить все данные из таблицы (TRUNCATE, TRUNCATE TABLE ... RESTART IDENTITY )

ПРИМЕРЫ создания таблиц



Создание и удаление таблиц



Создание таблицы


CREATE TABLE имя_таблицы(название_поля1 тип(размер), название_поля2 тип(размер), ...);



Пример запроса на создание таблицы name_table:


CREATE TABLE name_table(
id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL,
title VARCHAR(255) ,
message TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
age INT(11) DEFAULT 0,
price DOUBLE
)ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;


где:


PRIMARY KEY - первичный ключ, ограничение, позволяющее однозначно идентифицировать каждую запись в таблице SQL.

Первичные ключи должны содержать уникальные значения.

Первичный ключ не может иметь значения NULL.


NOT NULL - означает, что каждая строка должна содержать значение для этого столбца, нулевые значения допускаться не будут.


AUTO_INCREMENT - автоматический инкремент.


CHARACTER SET utf8 COLLATE utf8_general_ci - кодировка для конкретного поля, ставится сразу после типа.


)... - здесь кодировка задана для всех полей


DEFAULT - значение по умолчанию.


ENGINE=InnoDB - тип таблицы(используемый движок) - InnoDB




Удаление таблицы


DROP TABLE имя_таблицы;



Пример запроса на удаление таблицы name_table:


$sql = "DROP TABLE name_table";





Удалить все данные из таблицы


TRUNCATE имя_таблицы;


- данная команда очистит полностью таблицу и приведет ее к первоначальному состоянию,

когда она только создалась (CREATE TABLE) и в ней не было никаких записей.


пример:


TRUNCATE name_table;


- данная команда не производит сброс счётчика AUTO_INCREMENT, который используется, как известно, для автоматической генерации значения поля без необходимости его ручной установки. Чтобы этого избежать, можно использовать вместо команды выше данный вариант:


TRUNCATE TABLE name_table RESTART IDENTITY;


- данный вариант вызова команды TRUNCATE позволит сбросить значение счётчика полей с AUTO_INCREMENT.

Поэтому значение поля первой добавленной записи после данного удаления будет 1.




ПРИМЕРЫ создания таблиц



1 mysqli - объектно-ориентированный подход



Файл index.php:


-- файл index.php --

<?php
// Создаем переменные
$servername = "localhost"; // для локального сервера на компьютере
$username = "root";// имя пользователя
$password = "";// пароль если существует
$dbname = "newDB";// имя базы данных

// Устанавливаем соединение с сервером MySQL:
// создаем экземпляр класса new mysqli() и записываем, в качестве аргументов, наши переменные

$conn = new mysqli ($servername, $username, $password, $dbname);

// Проверка соединения:
// если выполняется выражение $conn->connect_error, то останавливаем выполнение die
// и выводим "Не удалось подключиться"
// С помощью выражения $conn -> connect_error выведем информацию об ошибке .
// Иначе выведем: "Соединение успешно установлено"

if ($conn -> connect_error){
die ("Не удалось подключиться: " . $conn -> connect_error);
}
echo "Соединение успешно установлено";

// Запрос для создания таблицы users1

$sql = "CREATE TABLE users(
     name VARCHAR(30) NOT NULL,
     surname VARCHAR(30) NOT NULL PRIMARY KEY,
     password VARCHAR(30) NOT NULL )"
;

// Проверка выполнения создания таблицы:
// Если значение $conn -> query($sql) будет - TRUE,
// тогда выведем сообщение "Таблица users создана успешно".
// В противном случае выведем сообщение "Ошибка при создании таблицы"
// и выведем информацию об ошибке: $conn->error.

if($conn -> query($sql) === TRUE) {
echo "Таблица users создана успешно <br><br>";
}else{
echo "Ошибка при создании таблицы: " . $conn -> error;
}

// закрываем соединение
$conn->close();
?>


Наверх


- После перезагрузки страницы выведет в браузере:

Успешное подключение

Таблица users создана успешно


В phpMyAdmin в базе данных newDB появилась таблица "users"



bd-5-1

Наверх



2 mysqli - процедурный подход



Файл index.php:


-- файл index.php --

<?php
// Создаем переменные
$servername = "localhost"; // для локального сервера на компьютере
$username = "root"; // имя пользователя
$password = ""; // пароль если существует
$dbname = "newDB";// имя базы данных

// Устанавливает соединение с сервером MySQL с помощью функции mysqli_connect()

$conn = mysqli_connect($servername, $username, $password, $dbname);

// Проверка соединения.

if (!$conn){
die ("Не удалось подключиться: " . mysqli_connect_error());
}
echo "Соединение успешно установлено";

// Запрос для создания таблицы:
// NOT NULL - означает, что каждая строка должна содержать значение для этого столбца,
// нулевые значения допускаться не будут.
// PRIMARY KEY — первичный ключ, ограничение, позволяющее однозначно идентифицировать
// каждую запись в таблице SQL.

$sql ="CREATE TABLE users2(
     name VARCHAR(30) NOT NULL,
     surname VARCHAR(30) NOT NULL PRIMARY KEY,
     password VARCHAR(30) NOT NULL )"
;

// Проверка выполнения создания таблицы:
// Если запрос к базе данных - выполнен,
// тогда выведем сообщение "Таблица users2 создана успешно".
// В противном случае выведем сообщение "Ошибка при создании таблицы"
// и выведем информацию об ошибке mysqli_error($conn);

if(mysqli_query($conn, $sql)) {
echo "Таблица users2 создана успешно <br><br>";
}else{
echo "Ошибка при создании таблицы: " . mysqli_error($conn);
}

// закрываем соединение
mysqli_close($conn);
?>


Наверх


- После перезагрузки страницы выведет в браузере:

Успешное подключение

Таблица users2 создана успешно


В phpMyAdmin в базе данных newDB появилась таблица "users2"


3 Подход PDO



Файл index.php:


-- файл index.php --

<?php
// Создаем переменные
$servername = "localhost"; // для локального сервера на компьютере
$username = "root"; // имя пользователя
$password = ""; // пароль если существует
$dbname = "newDB";// имя базы данных

// Подключение к серверу MySQL
// Обработка ошибок подключения: используем блок try-catch:

try{
// Подключение к серверу MySQL
$conn = new PDO("mysql:host=$servername; dbname=$dbname", $username, $password );

echo "Соединение успешно установлено <br><br>";

// Устанавливаем режим ошибки PDO в исключение

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {
echo "Ошибка при создании таблицы: <br>" . $e -> getMessage();
}

// Созданние таблицы
try{
// Созданние SQL-запроса

$sql = "CREATE TABLE users3(
         name VARCHAR(30) NOT NULL,
         surname VARCHAR(30) NOT NULL PRIMARY KEY,
         password VARCHAR(30) NOT NULL )"
;

// Устанавливаем режим ошибки PDO в исключение

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//выполняем SQL-запрос

$conn -> exec( $sql);
echo "Таблица users3 создана успешно <br>";

} catch (PDOException $e) {
echo "Ошибка при создании таблицы: <br>" . $sql . $e -> getMessage();
}

// Закрыть подключение
$conn = null;
?>


Наверх


- После перезагрузки страницы выведет в браузере:

Успешное подключение

Таблица users3 создана успешно


В phpMyAdmin в базе данных newDB появилась таблица "users3"


bd-5-2

Наверх






Наверх Наверх