Créer une table PHP 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 PDO
L'instruction CREATE TABLE est utilisée 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 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
Remarques sur le tableau ci-dessus :
Le type de données spécifie le type de données que la colonne peut contenir. Pour une référence complète de tous les types de données disponibles, consultez notre référence sur les types de données .
Après 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 nulles ne sont pas autorisées
- Valeur DEFAULT - Définissez une valeur par défaut qui est ajoutée lorsqu'aucune autre valeur n'est transmise
- UNSIGNED - Utilisé pour les types de nombres, limite les données stockées aux nombres positifs et zéro
- AUTO INCREMENT - MySQL augmente automatiquement la valeur du champ de 1 à chaque fois qu'un nouvel enregistrement est ajouté
- CLÉ PRIMAIRE - Utilisée pour identifier de manière unique les lignes d'une table. La colonne avec le paramètre PRIMARY KEY est souvent un numéro d'identification et est souvent utilisée avec AUTO_INCREMENT
Chaque table doit avoir une colonne de clé primaire (dans ce cas : la colonne "id"). Sa valeur doit être unique pour chaque enregistrement de la table.
Les exemples suivants montrent comment créer la table en PHP :
Exemple (MySQLi orienté objet)
<?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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . $conn->error;
}
$conn->close();
?>
Exemple (procédural 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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)";
if (mysqli_query($conn, $sql)) {
echo "Table MyGuests created successfully";
} else {
echo "Error creating table: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
Exemple (AOP)
<?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
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_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;
?>