개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.09 07:18

mysqli_stmt::bind_result 관련 질문

목록
  • TCP/IP장인 1일 전 2025.05.09 07:18
  • 2
    1
mysqli_stmt::bind_result 함수를 사용하여 결과를 바인딩할 때, 결과의 자료형을 지정해야 하는데
이때 자료형을 지정하지 않을 경우 어떤 문제가 발생하는지 궁금합니다.

예를 들어, 아래와 같이 사용하였을 때, 자료형을 지정하지 않았을 때의 문제점은 무엇인지 알려주시겠습니까?

php

$stmt = $mysqli->prepare("SELECT * FROM 테이블명");

$stmt->execute();

$stmt->bind_result($var1, $var2);


    댓글목록

    profile_image
    나우호스팅  1일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 18,308건 / 10 페이지

검색

게시물 검색