
mysqli_stmt::$error_list를 사용하여 MySQL 쿼리문에 오류가 발생했을 때 에러 메시지를 출력할 때, 복잡한 오류 메시지를 더 읽기 쉬운 형태로 출력하고 싶을 때는 다음과 같이 할 수 있습니다.
1. 오류 메시지를 분석하여 필요한 정보만 추출합니다.
2. 추출한 정보를 사용하여 더 읽기 쉬운 형태의 오류 메시지를 생성합니다.
예를 들어, 위 쿼리문에서 name이 NULL값으로 들어가게 되면, 에러 메시지가 다음과 같이 출력될 것입니다.
#hostingforum.kr
php
array (
0 => 'SQLSTATE[22004]: Invalid input: 1690 Parameter 1 of prepared statement requires a value of type int or string but got type NULL'
)
위 오류 메시지를 mysqli_stmt::$error_list를 사용하여 더 읽기 쉬운 형태로 출력하고 싶다면, 다음과 같이 할 수 있습니다.
#hostingforum.kr
php
$errorList = $stmt->error_list;
$errorMessage = $errorList[0];
// 오류 메시지를 분석하여 필요한 정보만 추출합니다.
$parameterNumber = explode('Parameter ', $errorMessage)[1];
$parameterNumber = explode(' of prepared statement', $parameterNumber)[0];
// 추출한 정보를 사용하여 더 읽기 쉬운 형태의 오류 메시지를 생성합니다.
$errorMessage = "Parameter $parameterNumber는 int 또는 string 형식의 값이 필요합니다. NULL 값을 읽어들입니다.";
print_r(array($errorMessage));
위 코드를 실행하면, 다음과 같이 출력될 것입니다.
#hostingforum.kr
php
array (
0 => 'Parameter 1는 int 또는 string 형식의 값이 필요합니다. NULL 값을 읽어들입니다.'
)
위 코드는 오류 메시지를 분석하여 필요한 정보만 추출하고, 추출한 정보를 사용하여 더 읽기 쉬운 형태의 오류 메시지를 생성합니다.
2025-05-19 15:37