Hướng dẫn dùng inurl:php id trong PHP

Thông thường khi thiết kế CSDL cho các hệ thống website thì khóa chính ta hay sử dụng tăng tự động [auto_increment], vì vậy lúc thêm dữ liệu ta không cần phải giá trị ID khóa chính. Như vậy ta không thể biết được khóa chính của record vừa insert là bao nhiêu? Trong MySQL có một câu truy vấn giúp lấy ID vừa insert đó là hàm LAST_INSERT_ID[]. Đó là MySQL, còn PHP lấy như thế nào thì ta cùng tìm hiểu nhé.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Lấy ID vừa insert bằng PHP

Trong các mô hình  CSDL có mối quan hệ khóa ngoại nên lúc Insert đôi lúc ta cần lấy giá trị khóa chính của field vừa insert để các table con sử dụng làm khóa ngoại. Lúc này ta phải sử dụng các hàm có sẵn trong PHP để giải quyết.

Mỗi thư viện database trong PHP đều cung cấp những hàm và phương thức giúp lấy ID vừa insert [tức là id cuối cùng].

Đối với thư viện MySQLi thì ta có hàm mysqli_insert_id[] và thuộc tính insert_id. Còn đối với PDO thì ta có phương thức lastInsertId[].

Bài viết này được đăng tại [free tuts .net]

Sau đây là ba ví dụ về cách lấy ID vừa insert.

Trường hợp MySQLi Object-oriented:

// Tạo kết nối
$conn = new mysqli['localhost', 'root', 'vertrigo', 'FreetutsDemo'];
 
// Kiểm tra kết nối
if [$conn->connect_error] {
    die["Kết nối thất bại: " . $conn->connect_error];
} 
 
// Câu SQL Insert
$sql = "INSERT INTO News [title, content] 
        VALUES ['tieu de', 'noi dung']";
 
// Thực hiện thêm record
if [$conn->query[$sql] === TRUE] {
    $last_id = $conn->insert_id;
    echo "Thêm record thành công có ID là $last_id";
} else {
    echo "Lỗi: " . $sql . "
" . $conn->error; } // Ngắt kết nối $conn->close[];

Trường hợp MySQLi Procedural:

// Tạo kết nối
$conn = mysqli_connect['localhost', 'root', 'vertrigo', 'FreetutsDemo'];
 
// Kiểm tra kết nối
if [!$conn] {
    die["Kết nối thất bại: " . mysqli_connect_error[]];
}
 
// Câu SQL Insert
$sql = "INSERT INTO News [title, content] 
        VALUES ['tieu de', 'noi dung']";
 
// Thực hiện thêm record
if [mysqli_query[$conn, $sql]] {
    $last_id = mysqli_insert_id[$conn];
    echo "Thêm record thành công có ID là $last_id";
} else {
    echo "Lỗi: " . $sql . "
" . mysqli_error[$conn]; } // Ngắt kết nối mysqli_close[$conn];

Trường hợp PDO:

try {
    // Tạo kết nối
    $conn = new PDO["mysql:host=localhost;dbname=FreetutsDemo", 'root', 'vertrigo'];
     
    // Cấu hình exception
    $conn->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
     
     
    // Câu SQL Insert
    $sql = "INSERT INTO News [title, content] 
            VALUES ['tieu de', 'noi dung']";
 
    // Thực hiện thêm record
    $conn->exec[$sql];
    
    $last_id = $conn->lastInsertId[];
    
    echo "Thêm record thành công có ID là $last_id";
} 
catch [PDOException $e] {
    echo $e->getMessage[];
}
 
// Ngắt kết nối
$conn = null;

2. Lời kết

Trên là ba ví dụ điển hình về cách lấy ID auto_increment vừa Insert, bài tiếp theo chúng ta sẽ tìm hiểu cách thực hiện nhiều câu truy vấn cùng lúc bằng PHP.

Thông thường khi thiết kế CSDL cho các hệ thống website thì khóa chính ta hay sử dụng tăng tự động [auto_increment], vì vậy lúc thêm dữ liệu ta không cần phải giá trị ID khóa chính. Như vậy ta không thể biết được khóa chính của record vừa insert là bao nhiêu? Trong MySQL có một câu truy vấn giúp lấy ID vừa insert đó là hàm LAST_INSERT_ID[]. Đó là MySQL, còn PHP lấy như thế nào thì ta cùng tìm hiểu nhé.

Nội dung chính

  • 1. Lấy ID vừa insert bằng PHP
  • Trường hợp MySQLi Object-oriented:
  • Trường hợp MySQLi Procedural:
  • Trường hợp PDO:
  • 2. Lời kết
  • 3. Từ khóa [keyword] trong PHP
  • 4. Định danh [identifier] trong PHP
  • 5. Câu lệnh [statement] trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Lấy ID vừa insert bằng PHP

Trong các mô hình  CSDL có mối quan hệ khóa ngoại nên lúc Insert đôi lúc ta cần lấy giá trị khóa chính của field vừa insert để các table con sử dụng làm khóa ngoại. Lúc này ta phải sử dụng các hàm có sẵn trong PHP để giải quyết.

Mỗi thư viện database trong PHP đều cung cấp những hàm và phương thức giúp lấy ID vừa insert [tức là id cuối cùng].

Đối với thư viện MySQLi thì ta có hàm mysqli_insert_id[] và thuộc tính insert_id. Còn đối với PDO thì ta có phương thức lastInsertId[].

Bài viết này được đăng tại [free tuts .net]

Sau đây là ba ví dụ về cách lấy ID vừa insert.

Trường hợp MySQLi Object-oriented:

// Tạo kết nối
$conn = new mysqli['localhost', 'root', 'vertrigo', 'FreetutsDemo'];
 
// Kiểm tra kết nối
if [$conn->connect_error] {
    die["Kết nối thất bại: " . $conn->connect_error];
} 
 
// Câu SQL Insert
$sql = "INSERT INTO News [title, content] 
        VALUES ['tieu de', 'noi dung']";
 
// Thực hiện thêm record
if [$conn->query[$sql] === TRUE] {
    $last_id = $conn->insert_id;
    echo "Thêm record thành công có ID là $last_id";
} else {
    echo "Lỗi: " . $sql . "
" . $conn->error; } // Ngắt kết nối $conn->close[];

Trường hợp MySQLi Procedural:

// Tạo kết nối
$conn = mysqli_connect['localhost', 'root', 'vertrigo', 'FreetutsDemo'];
 
// Kiểm tra kết nối
if [!$conn] {
    die["Kết nối thất bại: " . mysqli_connect_error[]];
}
 
// Câu SQL Insert
$sql = "INSERT INTO News [title, content] 
        VALUES ['tieu de', 'noi dung']";
 
// Thực hiện thêm record
if [mysqli_query[$conn, $sql]] {
    $last_id = mysqli_insert_id[$conn];
    echo "Thêm record thành công có ID là $last_id";
} else {
    echo "Lỗi: " . $sql . "
" . mysqli_error[$conn]; } // Ngắt kết nối mysqli_close[$conn];

Trường hợp PDO:

try {
    // Tạo kết nối
    $conn = new PDO["mysql:host=localhost;dbname=FreetutsDemo", 'root', 'vertrigo'];
     
    // Cấu hình exception
    $conn->setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
     
     
    // Câu SQL Insert
    $sql = "INSERT INTO News [title, content] 
            VALUES ['tieu de', 'noi dung']";
 
    // Thực hiện thêm record
    $conn->exec[$sql];
    
    $last_id = $conn->lastInsertId[];
    
    echo "Thêm record thành công có ID là $last_id";
} 
catch [PDOException $e] {
    echo $e->getMessage[];
}
 
// Ngắt kết nối
$conn = null;

2. Lời kết

Trên là ba ví dụ điển hình về cách lấy ID auto_increment vừa Insert, bài tiếp theo chúng ta sẽ tìm hiểu cách thực hiện nhiều câu truy vấn cùng lúc bằng PHP.

Bài này sẽ giới thiệu cú pháp [syntax] và các thành phần cơ bản trong PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.

Các file PHP chứa code PHP có đuôi mở rộng là .php. Một file PHP có thể bao gồm các thẻ [tag] HTML và PHP code. Các đoạn code PHP [còn gọi là PHP script] có thể được đặt ở bất cứ đâu trong file PHP.

PHP script bắt đầu với :


Trong thư mục C:\xampp\htdocs\gochocit, tạo file index.php với nội dung như bên dưới.




    Góc Học IT - Học công nghệ thông tin online



Hello everyone,

Trong ví dụ trên, file index.php chứa các thẻ HTML và PHP script. Sử dụng trình duyệt web và truy cập địa chỉ //localhost/gochocit/ để được kết quả thực thi của file trên.

Trong PHP, keyword [if, else, while, echo,…], class, function và user-defined function không phân biệt chữ hoa chữ thường. Nhưng tất cả tên biến [variable] thì có phân biệt chữ hoa chữ thường. Xem ví dụ bên dưới.


Kết quả
Welcome to gochocit.com!
Welcome to gochocit.com!
Welcome to gochocit.com!
My favorite color is red

Warning: Undefined variable $COLOR in C:\xampp\htdocs\gochocit\index.php on line 7
My favorite color is

Warning: Undefined variable $coLOR in C:\xampp\htdocs\gochocit\index.php on line 8
My favorite color is

Các câu lệnh ECHO, echo, EcHo là như nhau. Nhưng các biến $color, $COLOR$coLOR là khác nhau.

Chú thích [comment] sẽ không được thông dịch bởi PHP interpreter. Comment giúp diễn giải ý nghĩa của code, giúp người đọc code dễ hiểu hơn.

PHP hỗ trợ 3 cách viết comment:

– Comment trên một dòng với //

– Comment trên một dòng với #

– Comment trên nhiều dòng với /* */


3. Từ khóa [keyword] trong PHP

Từ khóa [keyword] là những từ [word] được dành riêng trong PHP. Chúng ta không thể sử dụng từ khóa để đặt tên biến, tên hàm hoặc bất kỳ định danh [identifier] nào khác. Chúng được sử dụng để xác định cú pháp và cấu trúc của ngôn ngữ PHP. Trong PHP, các từ khóa không có sự phân biệt chữ hoa và chữ thường.

__halt_compiler[] abstract and array[] as
break callable case catch class
clone const continue declare default
die[] do echo else elseif
empty[] enddeclare endfor endforeach endif
endswitch endwhile eval[] exit[] extends
final finally fn [PHP 7.4] for foreach
function global goto if implements
include include_once instanceof insteadof interface
isset[] list[] match [PHP 8.0] namespace new
or print private protected public
readonly [PHP 8.1.0] require require_once return static
switch throw trait try unset[]
use var while xor yield

Ngoài ra, chúng ta còn có một số hằng số được định nghĩa trước [predefined constants].

__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__
__NAMESPACE__ __TRAIT__        

4. Định danh [identifier] trong PHP

Các biến [variable], hằng [constant], hàm [function],… trong PHP đều phải có tên gọi riêng. Các tên gọi này gọi là định danh [identifier]. Khi đặt tên định danh, chúng ta phải tuân thủ các quy tắc sau:

1. Tên định danh chỉ được phép chứa các chữ cái [A-Z, a-z], chữ số [0-9] và dấu gạch dưới _. Ví dụ, myClass, var_1print_this_to_screen là các tên định danh hợp lệ.

2. Ký tự đầu tiên trong tên định danh không được phép là chữ số. Ví dụ, tên định danh 1variable không hợp lệ nhưng variable1 thì hợp lệ.

3. Tên gọi không được trùng với từ khóa [keyword].

4. Không được sử dụng các ký hiệu đặc biệt như !, @, #, $,%,… trong tên định danh.

5. Tên định danh có thể có độ dài bất kỳ.

5. Câu lệnh [statement] trong PHP

Khi thực thi PHP script, từng câu lệnh [statement] sẽ được thực thi. Mỗi câu lệnh trong PHP phải được kết thúc bởi dấu chấm phẩy ;.


Kết quả
statement
13

Lưu ý: Một statement có thể được viết trên 1 hoặc nhiều dòng.

  • Các hiệu ứng hiển thị trên LCD với board mạch Arduino
  • Lập trình điều khiển nhiều led với board mạch Arduino
  • Java collections framework: Map interface và lớp HashMap
  • Sử dụng kiểu dữ liệu String trong Python
  • Sử dụng câu lệnh break và continue với cấu trúc vòng lặp trong PHP

Chủ Đề