PHP MySQL Buat Tabel
Tabel database memiliki nama uniknya sendiri dan terdiri dari kolom dan baris.
Buat Tabel MySQL Menggunakan MySQLi dan PDO
Pernyataan CREATE TABLE digunakan untuk membuat tabel di MySQL.
Kami akan membuat tabel bernama "MyGuests", dengan lima kolom: "id", "firstname", "lastname", "email" dan "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
)
Catatan pada tabel di atas:
Tipe data menentukan tipe data yang dapat disimpan oleh kolom. Untuk referensi lengkap tentang semua tipe data yang tersedia, buka referensi Tipe Data kami .
Setelah tipe data, Anda dapat menentukan atribut opsional lainnya untuk setiap kolom:
- NOT NULL - Setiap baris harus berisi nilai untuk kolom itu, nilai null tidak diperbolehkan
- Nilai DEFAULT - Tetapkan nilai default yang ditambahkan ketika tidak ada nilai lain yang dilewatkan
- UNSIGNED - Digunakan untuk tipe angka, membatasi data yang disimpan ke angka positif dan nol
- PENINGKATAN OTOMATIS - MySQL secara otomatis meningkatkan nilai bidang sebesar 1 setiap kali catatan baru ditambahkan
- PRIMARY KEY - Digunakan untuk mengidentifikasi baris dalam tabel secara unik. Kolom dengan setting PRIMARY KEY sering berupa nomor ID, dan sering digunakan dengan AUTO_INCREMENT
Setiap tabel harus memiliki kolom kunci utama (dalam hal ini: kolom "id"). Nilainya harus unik untuk setiap record dalam tabel.
Contoh berikut menunjukkan cara membuat tabel di PHP:
Contoh (MySQLi Berorientasi objek)
<?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();
?>
Contoh (Prosedural 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);
?>
Contoh (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
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;
?>