Creating MySQL Table

Creating New Tables

Summary: in this tutorial, you wil learn how to create new tables in the database using PDO.

SQL statements for creating new tables

To create a new table in a database, you use the CREATE TABLE statement. For example, the following CREATE TABLE statement creates the authors table:

CREATE TABLE authors( author_id INT AUTO_INCREMENT, first_name VARCHAR(100) NOT NULL, middle_name VARCHAR(50) NULL, last_name VARCHAR(100) NULL, PRIMARY KEY(author_id) );Code language: SQL (Structured Query Language) (sql)

And the following CREATE TABLE statement creates the book_authors table:

CREATE TABLE book_authors ( book_id INT NOT NULL, author_id INT NOT NULL, PRIMARY KEY(book_id, author_id), CONSTRAINT fk_book FOREIGN KEY(book_id) REFERENCES books(book_id) ON DELETE CASCADE, CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES authors(author_id) ON DELETE CASCADE );Code language: SQL (Structured Query Language) (sql)

Note that the book_authors table links to the books created from the previous tutorial.

Typically, you execute these CREATE TABLE statements using a MySQL client tool to create the authors and book_authors tables. However, in this tutorial, you will learn how to create them from PHP using PDO.

Читайте также:  Java arraylist нумерация элементов

Using PDO to create new tables

To execute an SQL statement using PDO, you use follow these steps:

  • First, connect to the database (MySQL server in this case) by creating a new instance of the PDO class.
  • Second, execute an SQL statement by calling the exec() method of the PDO instance.

The exec() method returns the number of affected rows on success or false on failure.

The following script illustrates how to create the authors and book_authors tables:

 // SQL statement for creating new tables $statements = [ 'CREATE TABLE authors( author_id INT AUTO_INCREMENT, first_name VARCHAR(100) NOT NULL, middle_name VARCHAR(50) NULL, last_name VARCHAR(100) NULL, PRIMARY KEY(author_id) );', 'CREATE TABLE book_authors ( book_id INT NOT NULL, author_id INT NOT NULL, PRIMARY KEY(book_id, author_id), CONSTRAINT fk_book FOREIGN KEY(book_id) REFERENCES books(book_id) ON DELETE CASCADE, CONSTRAINT fk_author FOREIGN KEY(author_id) REFERENCES authors(author_id) ON DELETE CASCADE )']; // connect to the database $pdo = require 'connect.php'; // execute SQL statements foreach ($statements as $statement) < $pdo->exec($statement); > Code language: PHP (php)

Note that this script reuses the connect.php script that creates a connection to the MySQL database server.

  • First, define an array that holds the SQL statements for creating the authors and book_authors tables.
  • Second, connect to the MySQL database server using the connect.php script. The connect.php connects to the book db database on the local MySQL Server.
  • Third, execute each statement in the $statements array by calling the exec() method of the PDO instance.

After executing the script, you can open the bookdb database in a MySQL client tool to check if the authors and book_authors tables are created successfully.

Summary

  • Use the exec() method of the PDO instance to execute the CREATE TABLE statement to create a new table in the database from PHP.

Источник

MySQLi — Create Table

Now, we will create the following table in the TUTORIALS database.

create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) );

Here, a few items need explanation −

  • Field Attribute NOT NULL is being used because we do not want this field to be NULL. So, if a user will try to create a record with a NULL value, then MySQL will raise an error.
  • Field Attribute AUTO_INCREMENT tells MySQL to go ahead and add the next available number to the id field.
  • Keyword PRIMARY KEY is used to define a column as a primary key. You can use multiple columns separated by a comma to define a primary key.

Creating Tables from Command Prompt

It is easy to create a MySQL table from the mysql> prompt. You will use the SQL command CREATE TABLE to create a table.

Example

Here is an example, which will create tutorials_tbl

root@host# mysql -u root -p Enter password:******* mysql> use TUTORIALS; Database changed mysql> CREATE TABLE tutorials_tbl( → tutorial_id INT NOT NULL AUTO_INCREMENT, → tutorial_title VARCHAR(100) NOT NULL, → tutorial_author VARCHAR(40) NOT NULL, → submission_date DATE, → PRIMARY KEY ( tutorial_id ) → ); Query OK, 0 rows affected (0.16 sec) mysql>

NOTE − MySQL does not terminate a command until you give a semicolon (;) at the end of SQL command.

Creating Tables Using PHP Script

PHP uses mysqli query() or mysql_query() function to create a MySQL table. This function takes two parameters and returns TRUE on success or FALSE on failure.

Syntax

Required — SQL query to create a MySQL table.

Optional — Either the constant MYSQLI_USE_RESULT or MYSQLI_STORE_RESULT depending on the desired behavior. By default, MYSQLI_STORE_RESULT is used.

Example

Try the following example to create a table −

Copy and paste the following example as mysql_example.php −

    ", $mysqli→connect_error); exit(); > printf('Connected successfully.
'); $sql = "CREATE TABLE tutorials_tbl( ". "tutorial_id INT NOT NULL AUTO_INCREMENT, ". "tutorial_title VARCHAR(100) NOT NULL, ". "tutorial_author VARCHAR(40) NOT NULL, ". "submission_date DATE, ". "PRIMARY KEY ( tutorial_id )); "; if ($mysqli→query($sql)) < printf("Table tutorials_tbl created successfully.
"); > if ($mysqli→errno) < printf("Could not create table: %s
", $mysqli→error); > $mysqli→close(); ?>

Output

Access the mysql_example.php deployed on apache web server and verify the output.

Connected successfully. Table tutorials_tbl created successfully.

Источник

Php запрос создания таблиц

Для выполнения запросов у объекта mysqli вызывается метод query() , в который передается выполняемая команда SQL:

$conn = new mysqli("localhost", "root", "mypassword"); $conn->query(команда_sql);

Если выполнение запроса прошло успешно, то метод query() возвращает true , если неудачно, то возвращается false .

Процедурный подход

При процедурном подходе для выполнения вызывается функция mysqli_query() , в которую передается объект подключения и выполняемая команда SQL:

$conn = mysqli_connect("localhost", "root", "mypassword"); mysqli_query($conn, $query);

Если выполнение запроса прошло успешно, то функция mysqli_query() возвращает true , если неудачно, то возвращается false .

Создание базы данных

Для создания базы данных в MySQL применяется команда CREATE DATABASE , после которой указывается имя создаваемой базы данных. Создадим базу данных с помощью PHP.

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

connect_error)< die("Ошибка: " . $conn->connect_error); > // Создаем базу данных testdb2 $sql = "CREATE DATABASE testdb2"; if($conn->query($sql)) < echo "База данных успешно создана"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

Здесь создается база данных testdb2 . Если при выполнении команды возникнет ошибка, то мы можем получить информацию о ней через свойство $conn->error .

Процедурный подход

 // Создаем базу данных testdb3 $sql = "CREATE DATABASE testdb3"; if(mysqli_query($conn, $sql)) < echo "База данных успешно создана"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>

Здесь создается база данных testdb3 . Если при выполнении команды возникнет ошибка, то мы можем получить информацию о ней через функцию mysqli_error() , в которую передается объект подключения.

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

Создав базу данных, мы можем добавить в нее таблицы для хранения данных. Для создания таблицы в MySQL применяется команда CREATE TABLE , после которой указывается имя создаваемой таблицы и в скобках определения столбцов. Например, создадим в ней таблицу, которая описывается следующим кодом

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER);

Здесь создается таблица под названием «users». Она будет хранить условных пользователей. В ней будет три столбца: id, name и age. Столбец id представляет числовой уникальный идентификатор строки — или идентификатор пользователя. Столбец name представляет строку — имя пользователя. А столбец age хранит число — возраст пользователя.

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

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER);"; if($conn->query($sql)) < echo "Таблица Users успешно создана"; >else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

Если мы обращаемся уже непосредственно к базе данных, то ее имя передается в качетстве четвертого параметра в конструктор mysqli : new mysqli(«localhost», «root», «mypassword», «testdb2»); .

Процедурный подход

 $sql = "CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER);"; if(mysqli_query($conn, $sql)) < echo "Таблица Users успешно создана"; >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>

Если мы подключаемся к конкретной базе данных, то ее имя передается в качетстве четвертого параметра в функцию mysqli_connect() : mysqli_connect(«localhost», «root», «mypassword», «testdb3») .

Источник

PHP5 MySQL Создать таблицу

Таблица базы данных имеет свое уникальное имя и состоит из строк и столбцов.

MySQL Создание таблицы, используя mysqli и PDO

Заявление 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
)

Примечания к таблице выше:

Тип данных определяет, какой тип данных столбец может содержать. Для полного ознакомления со всеми доступными типами данных перейдите к нашей Справочник на типы данных.

После, типов данных можно указать другие необязательные атрибуты для каждого столбца:

  • NOT NULL — Каждая строка должна содержать значение для этого столбца, значения NULL не разрешены
  • DEFAULT value — Задайте значение по умолчанию, добавляемое, когда никакое другое значение не передается
  • UNSIGNED — Используется для типов чисел, ограничивает сохраненные данные положительными числами и нулем
  • AUTO INCREMENT — MySQL автоматически увеличивает значение поля на 1 при каждом добавлении новой записи
  • PRIMARY KEY — Используется для уникальной идентификации строк в таблице. Столбец с параметром PRIMARY KEY первичного ключа часто является ID идентификационным номером и часто используется с AUTO_INCREMENT

Каждая таблица, должна иметь столбец первичного ключа (в этом случае: «id» столбец). Его значение должно быть уникальным для каждой записи в таблице.

В следующих примерах показано, как создать таблицы в PHP:

Пример MySQLi — объектно-ориентированный

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных

// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);
// Проверка соединения
if ($conn->connect_error) die(«Ошибка подключения: » . $conn->connect_error);
>

// Создание таблицы
$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 «Таблица MyGuests создана успешно»;
> else echo «Ошибка создания таблицы: » . $conn->error;
>

// Закрыть подключение
$conn->close();
?>

Пример MySQLi — процессуальный

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных

// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Проверка соединения
if (!$conn) die(«Подключение не удалось: » . mysqli_connect_error());
>

// Создание таблицы
$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 «Таблица MyGuests создана успешно»;
> else echo «Ошибка создания таблицы: » . mysqli_error($conn);
>

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

Пример PDO

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDBPDO»; // база данных

// Создание соединения и исключения
try $conn = new PDO(«mysql:host=$servername;dbname=$dbname», $username, $password);

// Установить режим ошибки PDO в исключение
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Создание таблицы
$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
)»;

// Используйте exec (), поскольку результат не возвращается
$conn->exec($sql);
echo «Таблица MyGuests создана успешно»;
>
catch(PDOException $e)
echo $sql . «
» . $e->getMessage();
>

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

Источник

Оцените статью