현재 위치: > 최신 기사 목록> mysql_insert_id를 통해 삽입 된 데이터의 자동 증가 ID를 얻는 방법?

mysql_insert_id를 통해 삽입 된 데이터의 자동 증가 ID를 얻는 방법?

gitbox 2025-08-27
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 다음은 기사의 내용과 관련이없는 서문입니다. PHP 코드 예제</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"데이터베이스 작업을 시작할 준비가되었습니다...\n"</span></span><span>;
</span><span><span class="hljs-variable">$servername</span></span><span> = </span><span><span class="hljs-string">"localhost"</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">"root"</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">""</span></span><span>;
</span><span><span class="hljs-variable">$dbname</span></span><span> = </span><span><span class="hljs-string">"testdb"</span></span><span>;

</span><span><span class="hljs-comment">// 연결을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$conn</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-variable">$servername</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$dbname</span></span><span>);

</span><span><span class="hljs-comment">// 연결을 확인하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;connect_error);
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * 기사 제목: 통과하는 방법 mysql_insert_id 삽입 된 데이터의 자체 증가를 얻으십시오ID?
 *
 * 사용 중 MySQL 데이터베이스가 데이터를 삽입 할 때,종종 삽입 한 레코드의 자체 증가를 얻어야합니다. ID(AUTO_INCREMENT)。
 * 존재하다 PHP 가운데,통과 할 수 있습니다 `mysql_insert_id()` 또는 MySQLi、PDO 구현하기 위해 유사한 방법이 제공됩니다。
 *
 * 1. 사용 MySQLi 펼친
 *
 * 통과하다 MySQLi 펼친执行插入操作后,可以사용 `$conn-&gt;insert_id` 자체적으로 증가하십시오 ID。
 */</span>

</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES ('Alice', '[email protected]')"</span></span><span>;

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>) === </span><span><span class="hljs-literal">TRUE</span></span><span>) {
    </span><span><span class="hljs-variable">$last_id</span></span><span> = </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;insert_id;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"새로운 레코드 삽입 성공,ID ~을 위한: "</span></span><span> . </span><span><span class="hljs-variable">$last_id</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"오류를 삽입하십시오: "</span></span><span> . </span><span><span class="hljs-variable">$conn</span></span><span>-&gt;error;
}

<span class="hljs-comment">/**
 * 2. 사용 PDO 펼친
 *
 * PDO 제공 `lastInsertId()` 마지막 삽입 작업의 자동 확보를 얻는 방법 ID。
 */</span>

</span><span><span class="hljs-keyword">try</span></span><span> {
    </span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-string">"mysql:host=<span class="hljs-subst">$servername</span></span></span><span>;dbname=</span><span><span class="hljs-subst">$dbname</span></span><span>", </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>);
    </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">setAttribute</span></span><span>(PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span>, PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>);

    </span><span><span class="hljs-variable">$stmt</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">prepare</span></span><span>(</span><span><span class="hljs-string">"INSERT INTO users (username, email) VALUES (:username, :email)"</span></span><span>);
    </span><span><span class="hljs-variable">$stmt</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">execute</span></span><span>([</span><span><span class="hljs-string">':username'</span></span><span> =&gt; </span><span><span class="hljs-string">'Bob'</span></span><span>, </span><span><span class="hljs-string">':email'</span></span><span> =&gt; </span><span><span class="hljs-string">'[email protected]'</span></span><span>]);

    </span><span><span class="hljs-variable">$lastId</span></span><span> = </span><span><span class="hljs-variable">$pdo</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">lastInsertId</span></span><span>();
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\n사용 PDO 레코드 삽입,새로운 기록 ID ~을 위한: "</span></span><span> . </span><span><span class="hljs-variable">$lastId</span></span><span>;
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"실수: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}

<span class="hljs-comment">/**
 * 3. 주목해야 할 것
 *
 * - `mysql_insert_id()` 일찍이야 MySQL 펼친가운데的函数,已不推荐사용,建议사용 MySQLi 또는 PDO。
 * - 자체 증가 ID 테이블입니다 AUTO_INCREMENT 필드에 의해 생성 된 고유 한 정수。
 * - 자체적으로 증가하십시오 ID 必须존재하다同一个数据库连接가운데进行,그렇지 않으면 올바른 값을 얻지 못할 수 있습니다。
 * - 如果插入失败또는未插入자체 증가字段,얻었다 ID 可能~을 위한 0。
 */</span>

</span><span><span class="hljs-variable">$conn</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>