Создание таблицы MySQL с помощью MySQLi и PDO
Команда SQL CREATE TABLE используется для создания таблицы в MySQL.
Таблица базы данных состоит из столбцов и строк.
Здесь мы создадим таблицу с именем "MyGuests" с пятью столбцами: "id", "firstname", "lastname", "email" и "reg_date":
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Примечания к приведенному выше SQL:
Тип данных (например, INT(6), VARCHAR(30) и т.д.) указывает, какой тип данных может содержать столбец. Для получения полного справочника по всем доступным типам данных обратитесь к Справочнику типов данных SQL.
После типа данных вы можете указать другие необязательные атрибуты для каждого столбца:
UNSIGNED- Используется для числовых типов, ограничивает хранимые данные положительными числами и нулемAUTO_INCREMENT- MySQL автоматически увеличивает значение поля на 1 при каждом добавлении новой записиPRIMARY KEY- Используется для уникальной идентификации строк в таблице. Столбец с настройкойPRIMARY KEYчасто является ID-номером и часто используется сAUTO_INCREMENTNOT NULL- Каждая строка должна содержать значение для этого столбца, нулевые значения не допускаютсяDEFAULTзначение - Устанавливает значение по умолчанию, которое добавляется, когда не передано другое значение
Каждая таблица должна иметь столбец первичного ключа (в данном случае столбец "id"). Его значение должно быть уникальным для каждой записи в таблице.
Примечание: Вам потребуются привилегии на создание для создания таблицы MySQL.
В следующих примерах показано, как создать таблицу в PHP:
Пример - MySQLi объектно-ориентированный
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Создаем подключение
$conn = new mysqli($servername, $username, $password, $dbname);
// Проверяем подключение
if ($conn->connect_error) {
die("Подключение не удалось: " . $conn->connect_error);
}
// sql для создания таблицы
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Таблица успешно создана";
} else {
echo "Ошибка создания таблицы: " . $conn->error;
}
$conn->close();
?>
Пример - MySQLi процедурный
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Создаем подключение
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Проверяем подключение
if (!$conn) {
die("Подключение не удалось: " . mysqli_connect_error());
}
// sql для создания таблицы
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Таблица успешно создана";
} else {
echo "Ошибка создания таблицы: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Пример - PDO
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// устанавливаем режим ошибок PDO в исключение
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die("Не удалось подключиться. " .
$e->getMessage());
}
try {
// sql для создания таблицы
$sql = "CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
$conn->exec($sql);
echo "Таблица успешно создана";
} catch(PDOException $e)
{
echo "Ошибка создания таблицы: " . $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>