TECH I.S.

PHP MySQLは最後に挿入されたIDを取得します


最後に挿入されたレコードのIDを取得する

AUTO_INCREMENTフィールドを持つテーブルでINSERTまたはUPDATEを実行すると、最後に挿入/更新されたレコードのIDをすぐに取得できます。

テーブル「MyGuests」では、「id」列は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 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP )

次の例は、前のページの例と同じです。PHPは、MySQLにデータを挿入します。ただし、最後に挿入されたレコードのIDを取得するために1行のコードを追加しました。最後に挿入されたIDもechoします。

例 (MySQLi オブジェクト指向)

<?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) {   $last_id = $conn->insert_id;   echo "New record created successfully. Last inserted ID is: " . $last_id; } else {   echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>


例 (MySQLi プロシージャル)

<?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)) {   $last_id = mysqli_insert_id($conn);   echo "New record created successfully. Last inserted ID is: " . $last_id; } 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);   $last_id = $conn->lastInsertId();   echo "New record created successfully. Last inserted ID is: " . $last_id; } catch(PDOException $e) {   echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?>



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細