PHP MySQL Créer une Table
Une table de base de données a un nom unique et se compose de colonnes et de lignes.
Créer une Table MySQL en utilisant 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 la table ci-dessus :
Le type de données spécifie quel type de données la colonne peut contenir. Pour une référence complète de tous les types de données disponibles, consultez notre Référence des Types de Données .
Après le type de données, vous pouvez spécifier d'autres attributs optionnels pour chaque colonne :
- NOT NULL - Chaque ligne doit contenir une valeur pour cette colonne, les valeurs nulles ne sont pas autorisées.
- Valeur par défaut - Définir une valeur par défaut qui est ajoutée lorsqu'aucune autre valeur n'est fournie.
- UNSIGNED - Utilisé pour les types numériques, 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é.
- PRIMARY KEY - Utilisé pour identifier de manière unique les lignes dans une table. La colonne avec le paramètre PRIMARY KEY est souvent un numéro d'identification et est généralement 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 dans 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";
// Créer une connexion
$conn = new mysqli($servername, $username, $password, $dbname);
// Vérifier la connexion
if ($conn->connect_error) {
die("Échec de la connexion : " . $conn->connect_error);
}
// sql pour créer la 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 créée avec succès";
} else {
echo "Erreur lors de la création de la table : " . $conn->error;
}
$conn->close();
?> Exemple (MySQLi Procédural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Créer une connexion
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Vérifier la connexion
if (!$conn) {
die("Échec de la connexion : " . mysqli_connect_error());
}
// sql pour créer la 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 créée avec succès";
} else {
echo "Erreur lors de la création de la 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);
// définir le mode d'erreur PDO sur exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql pour créer la 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
)";
// utiliser exec() car aucun résultat n'est retourné
$conn->exec($sql);
echo "Table MyGuests créée avec succès";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>