PHP MySQL mencipta jadual data
Jadual data mempunyai nama unik dan terdiri daripada baris dan lajur.
Membuat jadual MySQL menggunakan MySQLi dan PDO
Pernyataan CREATE TABLE digunakan untuk mencipta jadual MySQL.
Tutorial video yang disyorkan: "tutorial mysql" http://www.php.cn/course/list/51.html
Kami akan membuat jadual bernama "MyGuests" dengan 5 lajur: "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 )
Nota daripada jadual di atas:
Jenis data menentukan jenis data yang boleh disimpan oleh lajur. Untuk jenis data yang lengkap, sila rujuk kami Manual rujukan jenis data.
Selepas menetapkan jenis data, anda boleh menentukan sifat pilihan lain untuk setiap lajur:
BUKAN NULL - setiap baris mesti mengandungi nilai (tidak boleh kosong) ), nilai nol tidak dibenarkan.
Nilai DEFAULT - Tetapkan nilai lalai
UNSIGNED - Gunakan jenis angka tidak bertanda, 0 dan nombor positif
TAMBAH AUTO - Tetapkan nilai medan MySQL untuk meningkat secara automatik sebanyak 1 setiap kali rekod baharu ditambahkan
KUNCI UTAMA - Tetapkan pengecam unik setiap rekod dalam jadual data. Biasanya KUNCI UTAMA lajur ditetapkan kepada nilai ID, yang sama dengan Digunakan bersama-sama dengan AUTO_INCREMENT.
Setiap jadual harus mempunyai kunci utama (lajur ini ialah lajur "id") dan kunci utama mesti mengandungi nilai unik.
Contoh berikut menunjukkan cara membuat jadual dalam PHP:
Contoh (MySQLi - Berorientasikan Objek)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 使用 sql 创建数据表 $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 "创建数据表错误: " . $conn->error; } $conn->close(); ?>
Instance (MySQLi - Berorientasikan Prosedur)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检测连接 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 使用 sql 创建数据表 $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 "数据表 MyGuests 创建成功"; } else { echo "创建数据表错误: " . mysqli_error($conn); } mysqli_close($conn); ?>
Instance (PDO)
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // 设置 PDO 错误模式,用于抛出异常 $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 使用 sql 创建数据表 $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 )"; // 使用 exec() ,没有结果返回 $conn->exec($sql); echo "数据表 MyGuests 创建成功"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>