Derniers tutoriels de développement web
 

PHP Créer des tables MySQL


Une table de base de données a son propre nom unique et se compose de colonnes et de lignes.


Créer une table MySQL avec MySQLi et AOP

L'instruction CREATE TABLE est utilisé pour créer une table dans MySQL.

Nous allons créer une table nommée "MyGuests" , avec cinq colonnes: "id" , "firstname" , "lastname" , "email" et "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
)

Notes on the table above:

Le type de données spécifie le type de données de la colonne peut contenir. Pour une référence complète de tous les types de données disponibles, consultez notre référence Types de données .

Une fois le type de données, vous pouvez spécifier d'autres attributs facultatifs pour chaque colonne:

  • NOT NULL - Chaque ligne doit contenir une valeur pour cette colonne, les valeurs NULL ne sont pas autorisées
  • Valeur par défaut - Définissez une valeur par défaut qui est ajoutée quand aucune autre valeur est passée
  • UNSIGNED - Utilisé pour les types numériques, limite les données stockées à des nombres positifs et zéro
  • AUTO INCREMENT - MySQL augmente automatiquement la valeur du champ de 1 à chaque fois qu'un nouvel enregistrement est ajouté
  • PRIMAIRE - Utilisée pour identifier de manière unique les lignes d'une table. La colonne avec le réglage de clé primaire est souvent un numéro d'identification, et est souvent utilisé avec AUTO_INCREMENT

Chaque table doit avoir une clé primaire (in this case: the "id" column) . Sa valeur doit être unique pour chaque enregistrement de la table.

Les exemples suivants montrent comment créer la table en PHP:

Exemple (MySQLi Object-oriented)

<?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();
?>

Exemple (MySQLi Procedural)

<?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);
?>

Exemple (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;
?>