개발자 Q&A

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

2025.07.02 15:10

mysqli_stmt::$param_count에 대한 이해를 부탁드립니다.

목록
  • 리팩토링광 18일 전 2025.07.02 15:10
  • 38
    1
제가 현재 PHP에서 MySQLi를 이용해 쿼리를 실행하는 과정에서 mysqli_stmt::$param_count에 대한 이해가 부족합니다.

이 변수는 mysqli_stmt 객체에서 사용 가능한 파라미터의 수를 나타내는데요.

아래 예제 코드에서, mysqli_stmt::$param_count는 2로 출력되는 이유를 이해해 주실 수 있나요?

php

$stmt = $mysqli->prepare("SELECT * FROM users WHERE name = ? AND age = ?");

$stmt->bind_param("si", $name, $age);

echo $stmt->param_count; // 2



위 예제에서, mysqli_stmt::$param_count는 2로 출력되는 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  18일 전



    mysqli_stmt::$param_count는 mysqli_stmt 객체에서 사용 가능한 파라미터의 수를 나타내는 변수입니다.

    위 예제에서 mysqli_stmt::$param_count가 2로 출력되는 이유는, prepare() 메서드에서 파라미터를 '?'로 지정했을 때, bind_param() 메서드를 호출하기 전까지는 파라미터의 수를 파악할 수 없기 때문입니다.

    prepare() 메서드에서는 파라미터의 타입을 지정할 수 있지만, 실제 파라미터의 수는 bind_param() 메서드를 호출할 때 지정됩니다.

    따라서, prepare() 메서드를 호출한 후 bind_param() 메서드를 호출하기 전에 mysqli_stmt::$param_count를 출력하면, 0이 출력됩니다.

    하지만, 위 예제에서는 prepare() 메서드와 bind_param() 메서드를 연속적으로 호출했기 때문에, mysqli_stmt::$param_count는 2로 출력됩니다.

    이러한 이유로, mysqli_stmt::$param_count를 사용할 때는 bind_param() 메서드를 호출한 후에 사용하는 것이 좋습니다.

    2025-07-02 15:11

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

검색

게시물 검색