PHP에서 MySQL 데이터베이스를 사용할 때 MySQLI 확장은 데이터베이스 작업을 처리하기 위해 풍부한 기능을 제공합니다. 특히 여러 SQL 문의 실행을 처리 할 때 MySQLI :: Multi_Query 메소드 및 MySQLI :: $ errno 속성은 매우 중요한 도구입니다. 이 기사는 다중 상태 실행 중에 발생할 수있는 오류를 효과적으로 처리하기 위해 두 가지를 모두 사용하는 방법을 자세히 설명합니다.
mysqli :: multi_query :
Multi_Query 는 MySQLI 클래스의 여러 SQL 문이 포함 된 쿼리를 실행하는 메소드입니다. 한 번에 여러 문장을 실행하고 결과를 반환 할 수 있습니다. 일반적으로 여러 쿼리를 실행할 때, 특히 트랜잭션 또는 배치 삽입이 포함될 때 사용합니다.
$mysqli->multi_query("SQL성명1; SQL성명2; SQL성명3;");
mysqli :: $ errno :
Errno 속성은 이전 MySQL 작업에서 생성 된 오류 코드를 나타냅니다. SQL 쿼리를 실행하는 동안 오류가 발생하면 $ mysqli-> errno 를 통해 오류 코드를 얻을 수 있습니다. 이 속성을 통해 오류가 발생했는지 쉽게 확인하고 해당 조치를 취할 수 있습니다.
if ($mysqli->errno) {
echo "오류 코드: " . $mysqli->errno;
}
mysqli :: multi_query를 사용하여 여러 sql 문을 실행할 때, 문이 실행되지 않으면 mysqli :: $ errno를 통해 오류 정보를 얻고 해당 처리를 할 수 있습니다. 다음은 사용 방법을 설명하는 예입니다.
<?php
// 만들다 MySQLi 연결하다
$mysqli = new mysqli("localhost", "root", "password", "database");
// 检查연결하다是否成功
if ($mysqli->connect_error) {
die("연결하다失败: " . $mysqli->connect_error);
}
// 다수의 SQL 성명
$sql = "
INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com');
INSERT INTO users (username, email) VALUES ('user2', 'user2@example.com');
INSERT INTO users (username, email) VALUES ('user3', 'user3@example.com');
";
// 执行다수의 SQL 성명
if ($mysqli->multi_query($sql)) {
do {
// 현재 쿼리의 결과 세트를 가져옵니다
if ($result = $mysqli->store_result()) {
// 프로세스 쿼리 결과
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
// 더 많은 결과 세트가 있는지 확인하십시오
} while ($mysqli->next_result());
// 오류를 확인하십시오
if ($mysqli->errno) {
echo "실행 오류: " . $mysqli->error;
} else {
echo "所有성명执行成功!";
}
} else {
// 如果多성명查询失败,출력 오류 메시지
echo "실행 실패: " . $mysqli->error;
}
$mysqli->close();
?>
Multi_Query 의 실행 :
코드에서 MySQLI :: Multi_Query 메소드를 사용하여 여러 SQL 문을 실행합니다. 실행이 성공하면 true가 반환됩니다. 그렇지 않으면 False를 반환합니다.
여러 결과 세트 처리 :
Multi_Query가 실행 된 후 MySQLI :: Next_Result를 통해 더 많은 결과 세트가 있는지 확인하고 mysqli :: store_result를 통해 현재 쿼리 결과를 가져와야합니다. 각 결과를 하나씩 처리 할 수 있습니다.
오류 처리 :
다중 상태 실행이 완료되면 mysqli :: $ errno를 통해 오류가 발생했는지 확인할 수 있습니다. 오류가 발생하면 mysqli :: 오류 를 통해 자세한 오류 정보를 얻고 처리 할 수 있습니다.
연결 닫기 :
모든 작업이 완료된 후에는 데이터베이스 연결을 닫아야합니다.
mysqli :: multi_query는 여러 SQL 문을 실행하는 데 사용할 수있는 강력한 방법입니다.
mysqli :: $ errno를 사용하면 다중 상태를 실행할 때 오류를 잡고 처리하는 데 도움이됩니다.
다중 상태 쿼리를 처리 할 때는 각 결과 세트가 올바르게 처리되고 오류가 제 시간에 발생했는지 확인해야합니다.
이 두 가지를 함께 사용함으로써, 우리는 다중 진술 실행에서 다양한 가능한 오류를보다 효율적으로 캡처하고 처리하여 코드의 안정성과 신뢰성을 향상시킬 수 있습니다.