LastInsertId PHP

Tôi gặp sự cố, mã của tôi chạy chính xác, chèn dữ liệu vào cơ sở dữ liệu, nhưng thông báo thành công sau lastInsertId không hoạt động

Hãy giúp tôi

Những gì tôi đã thử

if[isset[$_POST['submit']]]
	{
		$class=$_POST['class'];
		$subject=$_POST['subject'];
		$lesson=$_POST['lesson'];
		$topic=$_POST['topic'];
      	$date = date['Y-m-d'];
		$teacherid = $_SESSION['teacherid'];
		$teachername = $_SESSION['fullname'];
		$sql = "INSERT INTO homework [class,subject,lesson,topic,`date`,teacherid,teachername] VALUES[:class,:subject,:lesson,:topic,:date2,:teacherid,:teachername]";
		$query=$conn->prepare[$sql];
        $query->bindparam[':class',$class,PDO::PARAM_STR];
        $query->bindparam[':subject',$subject,PDO::PARAM_STR];
        $query->bindparam[':lesson',$lesson,PDO::PARAM_STR];
        $query->bindparam[':topic',$topic,PDO::PARAM_STR];
      	$query->bindparam[':date2',$date,PDO::PARAM_STR];
        $query->bindparam[':teacherid',$teacherid,PDO::PARAM_INT];
      	$query->bindparam[':teachername',$teachername,PDO::PARAM_STR];
		$query->execute[];
		$lastInsertId = $conn->lastInsertId[];
		if[$lastInsertId]
		{
			echo "";
			echo "";
		}
	}

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

MySQL có một thuộc tính cột AUTO_INCREMENT tự động tạo ra một giá trị số nguyên nhất quán khi một INSERT thành công [hoặc không]. Thông thường, thuộc tính này được đặt trên một cột được coi là PRIMARY KEY. Do đó, việc cung cấp một giá trị duy nhất cho cột và đảm bảo nhận dạng riêng của từng hàng. Hàm LAST_INSERT_ID[] trả về giá trị được tạo gần đây nhất cho một cột có thuộc tính AUTO_INCREMENT. Nhiều lần, bạn sử dụng thêm giá trị này trong quá trình xử lý truy vấn [E. g. , liên kết thông tin của khách hàng mới đăng nhập với bảng đơn đặt hàng đã tham gia, đảm bảo tính toàn vẹn tham chiếu giữa bảng cha và bảng con bằng cách sử dụng FOREIGN KEYPRIMARY KEY, INSERT vào bảng một đối một có liên quan khác, v.v…]. Thư viện PDO PHP có một phương thức lớp có cùng tên, lastInsertId[], cung cấp chức năng tương tự như LAST_INSERT_ID[] trong ngữ cảnh PHP. Trong bài đăng này, tôi sẽ ghé thăm lastInsertId[] với một ví dụ đơn giản. Tiếp tục đọc để tìm hiểu thêm…

Thúc đẩy

Nếu bạn thích nội dung được viết ở đây, bằng mọi cách, hãy chia sẻ blog này và [các] bài đăng yêu thích của bạn với những người khác, những người cũng có thể được hưởng lợi hoặc thích nội dung đó. Vì cà phê là thức uống yêu thích của tôi nên bạn thậm chí có thể mua cho tôi một ly nếu muốn.

Các loại tăng tự động dành riêng cho nhà cung cấp

Hầu hết các RDBMS đều hỗ trợ một số dạng thuộc tính cột, loại hoặc từ khóa tăng tự động. Dưới đây là nhiều triển khai phổ biến tại thời điểm viết

  • Máy chủ SQL – IDENTITY
  • MySQL – AUTO_INCREMENT
  • Oracle SQL – IDENTITY
  • PostgreSQL – NỐI TIẾP
  • MariaDB – AUTO_INCREMENT

PDO là gì?

PDO là viết tắt của PHP Data Objects và là giao diện để làm việc với Cơ sở dữ liệu trong PHP. PDO không liên quan đến cơ sở dữ liệu, không giống như mysqli chỉ hoạt động với Cơ sở dữ liệu MySQL và có thể tương tác với một số cơ sở dữ liệu

Cấu trúc bảng

Giả sử chúng ta có bảng 'user_details' này với 3 cột. 'id', 'first_name' và 'last_name'

cấu trúc bảng user_details

Hãy thêm một số dữ liệu vào bảng 'user_details' với câu lệnh INSERT này

1
2
3

CHÈN VÀO `người dùng _ chi tiết`getMessage[getFile[getLine[setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];

    // begin a transaction
    $pdo->beginTransaction[];

    // Assume the 'user input' values have been sanitized and validated.
    $first_name = 'Josh';
    $last_name  = 'Otwell';

    // prepare insert statement
    $insert_sql = "INSERT INTO `user_details`[`first_name`, `last_name`]
                    VALUES[:first_name, :last_name]"
;
    $insert_stmt = $pdo->prepare[$insert_sql];
    $insert_stmt->bindValue[':first_name', $first_name];
    $insert_stmt->bindValue[':last_name', $last_name];
    // try the insert, if something goes wrong, rollback.
    if [$insert_stmt->execute[] === FALSE] {
        $pdo->rollback[];
        echo 'Unable to insert data';
    } else {
        $last_insert_id = $pdo->lastInsertId[];
        echo 'Last Insert ID: '.$last_insert_id;
        $pdo->commit[];
    }
} catch [PDOException $e] {
    echo 'Database Error '.$e->getMessage[].' in '.$e->getFile[].
    ': '.$e->getLine[];
}

Quan trọng. Nói chung, cách tốt nhất là ghi bất kỳ lỗi nào vào tệp nhật ký và không gửi các lỗi này vào trình duyệt. Tôi đã làm như vậy trong đoạn mã trên chỉ cho mục đích của bài đăng này nếu chúng tôi gặp lỗi trong quá trình thực thi

Sau khi thực thi tập lệnh INSERT3, giá trị của INSERT9 của trình duyệt là lastInsertId[]

1

ID Chèn Cuối cùng . 3

Chúng ta cũng có thể thấy hàng dữ liệu được thêm gần đây trong ảnh chụp màn hình bên dưới

Gần đây thêm hàng vào bảng 'user_details' hiển thị giá trị id là 3…

Tôi hy vọng phần giới thiệu cấp cao về lastInsertId[] này hữu ích và mang tính thông tin cho bạn. Nếu bạn có bất kỳ câu hỏi hoặc đề xuất nào về các phương pháp hay nhất, vui lòng cho tôi biết trong phần nhận xét bên dưới và cảm ơn vì đã đọc

đề xuất đọc

Truy cập các nguồn thông tin này để biết thêm thông tin về [các] chủ đề được đề cập trong bài đăng này

  • Thuộc tính cột AUTO_INCREMENT trong MySQL – Phối cảnh ban đầu
  • Tiện ích mở rộng được cải thiện của MySQL
  • PDO
  • PDO lastInsertId[]

Giống như những gì bạn đã đọc?

Lời kêu gọi hành động

Cảm ơn bạn đã dành thời gian để đọc bài viết này. Tôi thực sự hy vọng bạn đã khám phá ra điều gì đó thú vị và khai sáng. Vui lòng chia sẻ những phát hiện của bạn ở đây, với người khác mà bạn biết, người cũng sẽ nhận được giá trị tương tự từ nó

Truy cập trang Danh mục đầu tư-Dự án để xem bài đăng trên blog/bài viết kỹ thuật mà tôi đã hoàn thành cho khách hàng.

Tôi đã đề cập đến việc tôi yêu một tách cà phê đến mức nào chưa?. ?

Để nhận thông báo qua email [Không bao giờ là thư rác] từ blog này [“Văn xuôi của cú kỹ thuật số”] cho các bài đăng blog mới nhất khi chúng được xuất bản, vui lòng đăng ký [theo ý muốn của bạn] bằng cách nhấp vào nút 'Nhấp để đăng ký'. ’ trong thanh bên trên trang chủ. [Vui lòng xem lại Trang chính sách bảo mật văn xuôi của Digital Owl bất cứ lúc nào để biết bất kỳ câu hỏi nào bạn có thể có về. cập nhật email, chọn tham gia, từ chối, biểu mẫu liên hệ, v.v.]

Hãy chắc chắn và truy cập trang “Hay nhất” để có bộ sưu tập các bài đăng blog hay nhất của tôi.

Josh Otwell có niềm đam mê học tập và phát triển với tư cách là Nhà phát triển SQL và người viết blog. Các hoạt động yêu thích khác khiến anh ta chúi mũi vào một cuốn sách hay, một bài báo hoặc dòng lệnh Linux. Trong số đó, anh ấy chia sẻ niềm yêu thích với các trò chơi RPG trên máy tính bảng, đọc tiểu thuyết giả tưởng và dành thời gian cho vợ và hai con gái.

từ chối trách nhiệm. Các ví dụ được trình bày trong bài đăng này là những ý tưởng giả định về cách đạt được các loại kết quả tương tự. Chúng không phải là [các] giải pháp tối ưu nhất. Phần lớn, nếu không phải tất cả, các ví dụ được cung cấp, được thực hiện trên môi trường máy trạm học tập/phát triển cá nhân và không nên được coi là chất lượng sản xuất hoặc sẵn sàng. Mục tiêu và nhu cầu cụ thể của bạn có thể thay đổi. Sử dụng những phương pháp có lợi nhất cho nhu cầu và mục tiêu của bạn. Ý kiến ​​​​là của riêng tôi

Làm cách nào để lấy ID được chèn lần cuối trong postgresql PHP?

Trong PHP, bạn có thể sử dụng hàm mysqli_insert_id để lấy ID được chèn lần cuối. Trong Codeigniter, Bạn có thể sử dụng hàm insert_id[] để lấy giá trị cột tăng tự động mới nhất từ ​​bảng MySQL. insert_id[] là chức năng của thư viện "db".

Làm cách nào để lấy ID được chèn lần cuối bằng PDO trong PHP?

Bạn có thể sử dụng PDO. lastInsertId[] . @ArtGeigel Đây sẽ là ID được chèn cuối cùng của kết nối bên dưới phiên bản PDO.

Làm cách nào để nhận ID mới nhất trong PHP?

Trong PHP có một phương thức sẵn có chỉ trả về id chèn cuối cùng theo truy vấn chèn trước đó. .
mysqli_insert_id[] Nó trả về giá trị cột AUTO_INCREMENT cuối cùng của truy vấn chèn đã thực hiện thành công trước đó. .
Ví dụ.

Chủ Đề