
mysqli_stmt::bind_result 함수에서 자료형을 지정하지 않을 경우, PHP가 자동으로 자료형을 인식하여 바인딩합니다. 하지만 이때 PHP가 인식한 자료형이 실제 데이터의 자료형과 일치하지 않을 경우, 다음과 같은 문제가 발생할 수 있습니다.
- 정수 자료형이 실수 자료형으로 인식되어 NaN(Not a Number)으로 처리될 수 있습니다.
- 문자열 자료형이 정수 자료형으로 인식되어 잘못된 결과를 반환받을 수 있습니다.
- NULL 값이 정수 자료형으로 인식되어 0으로 처리될 수 있습니다.
따라서, mysqli_stmt::bind_result 함수에서 자료형을 지정하는 것을 권장합니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
php
$stmt = $mysqli->prepare("SELECT * FROM 테이블명");
$stmt->execute();
$stmt->bind_result($var1, $var2, $var3); // 자료형을 지정
자료형을 지정하지 않으면 PHP가 자동으로 자료형을 인식하여 바인딩하기 때문에, 정확한 결과를 반환받기 위해서는 자료형을 지정하는 것이 좋습니다.
2025-05-09 07:19