개발자 Q&A

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

2025.04.21 23:01

mysqli_stmt::prepare 사용 시 오류 발생

목록
  • 커밋광 1일 전 2025.04.21 23:01
  • 3
    1
제가 mysqli_stmt::prepare 함수를 사용하여 쿼리를 작성하려고 하는데, 준비 단계에서 오류가 발생하고 있습니다.

쿼리문은 다음과 같습니다.
sql

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

$stmt->bind_param("s", $name);


여기서 `$name` 변수는 사용자 입력 값을 받는 변수입니다.

오류 메시지는 다음과 같습니다.


Warning: mysqli_stmt::prepare(): MySQL server has gone away in /path/to/script.php on line 10


이러한 오류는 어떻게 해결할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    mysqli_stmt::prepare 함수를 사용하여 쿼리를 작성할 때 MySQL 서버가 연결을 끊어졌을 때 발생하는 오류입니다.

    이러한 오류는 MySQL 서버의 연결이 끊어졌기 때문에 발생하는 오류입니다. MySQL 서버의 연결을 끊어지지 않도록 하기 위해 다음 방법을 사용할 수 있습니다.

    1. MySQL 서버의 연결을 끊어지지 않도록 하기 위해 MySQL 서버의 max_allowed_packet 옵션을 설정하여 MySQL 서버의 연결을 끊어지지 않도록 할 수 있습니다.

    #hostingforum.kr
    php
    
    $mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, true);
    
    $mysqli->query("SET max_allowed_packet = 1024*1024*10"); // 10MB로 설정
    
    


    2. MySQL 서버의 연결을 끊어지지 않도록 하기 위해 MySQL 서버의 wait_timeout 옵션을 설정하여 MySQL 서버의 연결을 끊어지지 않도록 할 수 있습니다.

    #hostingforum.kr
    php
    
    $mysqli->query("SET wait_timeout = 600"); // 10분으로 설정
    
    


    3. MySQL 서버의 연결을 끊어지지 않도록 하기 위해 MySQL 서버의 innodb_buffer_pool_size 옵션을 설정하여 MySQL 서버의 연결을 끊어지지 않도록 할 수 있습니다.

    #hostingforum.kr
    php
    
    $mysqli->query("SET innodb_buffer_pool_size = 1024*1024*1024"); // 1GB로 설정
    
    


    4. MySQL 서버의 연결을 끊어지지 않도록 하기 위해 MySQL 서버의 innodb_flush_log_at_trx_commit 옵션을 설정하여 MySQL 서버의 연결을 끊어지지 않도록 할 수 있습니다.

    #hostingforum.kr
    php
    
    $mysqli->query("SET innodb_flush_log_at_trx_commit = 2");
    
    


    위 방법 중 하나 이상을 사용하여 MySQL 서버의 연결을 끊어지지 않도록 할 수 있습니다.

    2025-04-21 23:02

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

검색

게시물 검색