PHP Создание таблиц MySQL
Таблица базы данных имеет свое уникальное имя и состоит из столбцов и строк.
Создание таблицы MySQL с помощью mysqli и PDO
Инструкция CREATE TABLE используется для создания таблицы в MySQL.
Создадим таблицу с именем "мигуестс" с пятью колонками: "ID", "имя", "Фамилия", "Email" и "рег_дате":
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
)
Примечания к таблице выше:
Тип данных определяет тип данных, которые может содержать столбец. Для полной ссылки на все доступные типы данных перейдите на Ссылки на типы данных.
После того как тип данных, можно указать другие необязательные атрибуты для каждого столбца:
- NOT NULL - Каждая строка должна содержать значение для этого столбца, значения NULL не допускаются
- DEFAULT value - Установите значение по умолчанию, которое добавляется, когда не передается другое значение
- UNSIGNED - Используется для числовых типов, ограничивает хранимые данные положительными числами и нулем
- AUTO INCREMENT - MySQL автоматически увеличивает значение поля на 1 каждый раз при добавлении новой записи
- PRIMARY KEY - Используется для уникальной идентификации строк в таблице. Столбец с параметром первичного ключа часто является идентификационным номером и часто используется с ауто_инкремент
Каждая таблица должна иметь столбец первичного ключа (в данном случае: столбец "ID"). Его значение должно быть уникальным для каждой записи в таблице.
В следующих примерах показано, как создать таблицу в PHP:
Пример (mysqli объектно-ориентированный)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// sql to create table
$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
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
Пример (mysqli процедурный)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// sql to create table
$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
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Пример (PDO)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to create table
$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
)";
// use exec() because no results are returned
$conn->exec($sql);
echo "Table MyGuests created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>