PHP MySQLi 関数を使用して、最後に挿入された ID を取得する

Preet Sanghavi 2023年6月20日
  1. PHP mysqli() 関数
  2. PHP mysqli() 関数を使用して、最後に挿入された ID を取得する
PHP MySQLi 関数を使用して、最後に挿入された ID を取得する

このチュートリアルでは、PHP の mysqli() 関数を簡単に紹介し、それを使用して最後に挿入された id を MySQL データベースから取得する方法を示します。

PHP mysqli() 関数

これは、mysqli と呼ばれる MySQL ドライバー拡張機能のバージョンであり、MySQL データベースまたはスキーマに接続するために PHP サーバー側スクリプトでよく使用されます。

まず、MySQL データベースに接続する必要があります。 connect() または mysqli_connect() 関数は、MySQL サーバーへの接続を開くために使用されます。

関数を使用する前に、MySQL サーバーに関するパラメーターを含む mysqli() オブジェクトを作成する必要があります。

    <?php
        $mysqli = new mysqli(
                            "host_name",
                            "username",
                            "password",
                            "database_name",
                            "port",
                            "socket"
                  );

        //Checking connection
        if ($mysqli -> connect_errno){
            echo "Something went wrong. Failed to connect with MySQL database".
                $mysqli -> connection_error;
            exit();
        }
        else{
             echo "Connected";
        }
?>

上記のコードは、接続が確立されていない場合にユーザーに通知します。 それ以外の場合は、ブラウザ画面に Connected と表示されます。

パラメータ 説明

パラメータ 説明
host_name ホストの名前 (例: localhost) または IP アドレスを指定します。
username MySQL データベースの username を指定します。
password MySQL データベースの password を指定します。
database_name MySQL データベースで接続するデータベースまたはスキーマの名前を指定します。
port MySQL サーバーへの接続に使用されます。
socket socket または名前付きパイプを指定します。

PHP mysqli() 関数を使用して、最後に挿入された ID を取得する

このタスクを達成するには、最後に挿入されたレコード id を返す AUTO_INCREMENT フィールドを持つテーブルを作成する必要があります。

AUTO_INCREMENTがあるのはなぜですか? 新しいレコードがテーブルに挿入されるたびに、auto-increment によって一意の番号が自動的に作成されます。

多くの場合、新しいレコードが挿入されるたびに自動的に生成される 主キー フィールドです。 AUTO_INCREMENT 列を作成する方法については、次のコードを参照してください。

CREATE TABLE table_name(
    column_name1 INT AUTO_INCREMENT PRIMARY KEY,
    column_name2 VARCHAR(100)
);

INT 列には整数値が格納され、AUTO_INCREMENT は新しいレコードが挿入されるたびに列の値を自動的にインクリメントします。 最後に、PRIMARY KEY は制約を設定し、列に一意の値のみを許可します。

2 番目の列は、文字列値を受け入れることができる VARCHAR 型です。 最後に挿入された id を取得するために、mysqli()insert_id コマンドを提供します。 以下で確認してください。

$mysql->insert_id;

このコマンドの動作を確認するには、最初に INSERT クエリを実行し、次に insert_id コマンドを実行して、最後に挿入された id を確認します。

<?php
    $mysqli = new mysqli(
                         "host_name",
                         "username",
                         "password",
                         "database_name",
                         "port",
                         "socket"
              );

        // Checking connection
       if ($mysqli -> connect_errno){
           echo "Something went wrong. Failed to connect with MySQL database".
               $mysqli -> connection_error;
           exit();
       }else{
           echo "Connected";
       }

       $sql_query = "INSERT INTO table_name (column_name2) VALUES ('value_2')";

       if ($mysqli->query($sql_query) === TRUE) {
           printf("Last inserted record ID %d. \n", $mysqli->insert_id);
       } else {
         echo "Error: ". $sql_query . "<br>" . $mysqli->error;
       }
?>

上記のコードでは、$mysqli -> query() 関数が、指定されたクエリを選択したデータベースに対して実行します。 戻り値を比較します。

TRUE の場合、printf() 関数を使用して書式設定された文字列を出力します。 それ以外の場合は、$mysqli -> error を使用してエラーを出力します。

printf() 関数に指定したパラメーターは、指定した元の文字列の % 記号の後に挿入されます。 また、%d 記号は、挿入される値が Signed 10 進数 (負、正、またはゼロ) であることを意味します。

著者: Preet Sanghavi
Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

関連記事 - MySQL Function