PHP – Insert Data

Insert Data vào MySQL dùng MySQLi và PDO

Sau khi tạo một database và một table, chúng ta có thể bắt đầu thêm dữ liệu vào chúng.

Dưới đây là một số quy tắc cần tuân theo:

  • Câu SQL query phải nằm trong dấu nháy PHP.
  • Giá trị là String trong SQL query phải nằm trong dấu nháy.
  • Giá trị là Numeric trong SQL query không nằm trong dấu nháy.
  • NULL không nằm trong dấu nháy.

Câu lệnh INSERT INTO dùng thêm records vào bảng MySQL.

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

Ở bài trước, chúng ta đã tạo một table “MyGuests” với năm cột: “id”, “firstname”, “lastname”, “email” và “reg_date”. Bây giờ, chúng ta sẽ insert dữ liệu vào.

Nếu một cột là AUTO_INCREMENT (như cột “id”) hoặc TIMESTAMP (như cột “reg_date”), thì không cần phải thêm giá trị trong truy vấn SQL; MySQL sẽ tự động thêm giá trị.

Ví dụ thêm record vào table MyGuests

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 = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

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 = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

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 = "INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('John', 'Doe', 'john@example.com')";
    // use exec() because no results are returned
    $conn->exec($sql);
    echo "New record created successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>