NTM Solutions

Facebook Youtube Google+

Thứ Hai, 22 tháng 10, 2018

MYSQL – Bài 05 – Lấy ID của bản ghi mới thêm vào


XEM MỤC LỤC CÁC BÀI VIẾT PHP


Nếu ta tiến hành INSERT hoặc UPDATE trên 01 bảng có cột AUTO_INCREMENT, chúng ta có thể lấy ID của bản ghi thêm/cập nhật mới nhất ngay tức thời.

Trong bảng "MyGuests", cột "id" có thuộc tính AUTO_INCREMENT



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
)

Các ví dụ sau y chang bài trước, ngoại trừ chúng ta thêm 01 dòng để nhận ID bảng ghi mới vừa thêm vào và xuất ra màn hình.


Ví dụ (MySQLi hướng đối tượng)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDB";

// Tạo kết nối
$conn = new mysqli($servername, $username, $password, $dbname);
 
// Kiểm tra kết nối
 if ($conn->connect_error) {
     
die("Kết nối thất bại: " . $conn->connect_error);
}
$conn->
query("SET character_set_client=utf8");

$conn->query("SET character_set_connection=utf8");


$sql = 
"INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Vi Tính', 'ntm@lophocvitinh.com')"
;

if ($conn->query($sql) === TRUE) {
    $last_id = $conn->insert_id;
    
echo "Thêm bản ghi mới thành công. ID là: " . $last_id;
else {
    
echo "Lỗi: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>



Ví dụ (MySQLi thủ tục)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDB";

// Tạo kết nối
$conn = mysqli_connect($servername, $username, $password, $dbname);
 
// Kiểm tra kết nối
if (!$conn) {
  
die("Kết nối thất bại: " . mysqli_connect_error());
}
mysqli_query($conn, "SET character_set_client=utf8");

mysqli_query($conn, "SET character_set_connection=utf8");


$sql = 
"INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('Lớp học', 'Anh Văn', 'ntm@lophocvitinh.com')"
;

if (mysqli_query($conn, $sql)) {
    $last_id = mysqli_insert_id($conn);
    
echo "Thêm mới bản ghi thành công. ID là: " . $last_id;
else {
    
echo "Lỗi: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>



Ví dụ (PDO)


<?php
$servername = "localhost";
$username = 
"root";
$password = 
"";
$dbname = 
"myDBPDO";

try {
    $conn = 
new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

    $conn->exec("SET NAMES 'utf8';");
    
// thiết lập chế độ PDO bắt lỗi ngoại lệ
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = 
"INSERT INTO MyGuests (firstname, lastname, email)
    VALUES ('Nguyễn', 'Du', 'ntm@lophocvitinh.com')"
;
     
// dùng exec() vì không có kết quả trả về
    $conn->exec($sql);
    $last_id = $conn->lastInsertId();
    
echo "Thêm mới thành công 01 bản ghi. ID là: " . $last_id;
    }
catch(PDOException $e)
    {
    
echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>



Nếu vẫn chưa rõ các bạn xem them video clip sau:



XEM MỤC LỤC CÁC BÀI VIẾT PHP


By #tiensim

Nguồn: sưu tầm