MySQLi Tutorial

MySQLi - Create Table



A database consists of one or more tables. These tables contain data using model of columns and rows. To create a table in MySQL database, the table name should be unique within the database system.

The CREATE TABLE statement is used to create a table in MySQL. Creating a table involves providing a name to the table and defining name and data type (e.g. varchar, integer, date, etc.) of each column. For example, to create a table named "Employee", with five columns: "EmpID", "Name", "City", "Age" and "Salary", the following query can be used:

CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
)

In the above query, the data type specifies what type of data the column can hold. After the data type, optional attributes are provided for each column. The description of the attributes used here are as follows:

  • NOT NULL - Ensures that a column cannot have a NULL value.
  • UNIQUE - Ensures that all values in a column are different.
  • PRIMARY KEY - Uniquely identifies each row/record in a column of a table. A combination of a NOT NULL and UNIQUE constraints.
  • UNSIGNED - Used for number types, limits the stored data to positive numbers and zero
  • AUTO_INCREMENT - Automatically increases the value of the field by 1 each time a new record is added.

To connect to the MySQL database, PHP mysqli_connect() function can be used. After establishing the connection to the database, PHP mysqli_query() function can be used to perform the query on the database to create a new table.

Create a MySQL Table - Procedural style

To obtain the same result using procedural style, the following script can be used.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//establishing connection 
$mysqli = mysqli_connect($servername, $username, $password, $dbname);

//checking connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: ". mysqli_connect_error();
  exit();
}

//query for creating table
$sql = "CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
)";

//executing the query
if (!mysqli_query($mysqli, $sql)) {
  echo "Error creating table: ". mysqli_error($mysqli);
} else { 
  echo "Table Employee created successfully.";
}

//closing the connection
mysqli_close($mysqli);
?>

Create a MySQL Table - Object-oriented style

The example below demonstrates how to create a table named "Employee" in object-oriented style.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDatabase";

//establishing connection 
$mysqli = new mysqli($servername, $username, $password, $dbname);

//checking connection
if ($mysqli->connect_errno) {
  echo "Failed to connect to MySQL: ". $mysqli->connect_error;
  exit();
}

//query for creating table
$sql = "CREATE TABLE Employee (
  EmpID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  Name VARCHAR(255) NOT NULL,
  City VARCHAR(100),
  Age INT,
  Salary DECIMAL(18,2)
)";

//executing the query
if (!$mysqli->query($sql)) {
  echo "Error creating table: ". $mysqli->error;
} else { 
  echo "Table Employee created successfully.";
}

//closing the connection
$mysqli->close();
?>

Complete PHP MySQLi Reference

For a complete reference of all properties, methods and functions of PHP MySQLi extension, see PHP MySQLi Reference.


5