개발자 Q&A

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

2025.06.11 03:43

mysqli::real_query 함수에 대한 질문

목록
  • RESTful도령 3일 전 2025.06.11 03:43
  • 4
    1
저는 mysqli::real_query 함수를 사용하여 SQL 쿼리를 실행할 때, 오류가 발생하는 것을 봤습니다.

mysqli::real_query 함수는 SQL 쿼리를 실행하고 결과를 반환하는 함수입니다.

하지만, 저는 이 함수를 사용하여 INSERT 쿼리를 실행할 때, 에러 메시지가 나타납니다.

다음과 같은 쿼리를 실행하였습니다.

php

$query = "INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com')";

mysqli::real_query($query);



에러 메시지는 다음과 같습니다.

"Duplicate entry '1' for key 'PRIMARY'"

저는 이 에러 메시지를 이해하지 못하고 있습니다.

mysqli::real_query 함수에서 INSERT 쿼리를 실행할 때, 에러가 발생하는 이유는 무엇이며, 어떻게 해결할 수 있는지 알려주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  3일 전



    mysqli::real_query 함수는 SQL 쿼리를 실행하고 결과를 반환하는 함수입니다. 하지만, INSERT 쿼리를 실행할 때 PRIMARY KEY에 중복된 값을 입력하면 에러가 발생합니다.

    이 에러는 PRIMARY KEY에 중복된 값을 입력했기 때문입니다. PRIMARY KEY는 데이터베이스에서 고유한 값을 저장하는 열로, 중복된 값을 입력하면 데이터베이스가 중복된 값을 허용하지 않습니다.

    INSERT 쿼리를 실행할 때 PRIMARY KEY에 중복된 값을 입력하지 않도록 하거나, PRIMARY KEY를 제거하거나, 중복된 값을 허용하는 데이터베이스 설정을 변경하거나, 중복된 값을 입력한 경우 중복된 값을 제거하는 방법을 선택할 수 있습니다.

    예를 들어, PRIMARY KEY를 제거하는 방법은 다음과 같습니다.

    php
    
    $query = "INSERT INTO users (id, name, email) VALUES (NULL, 'John Doe', 'john@example.com')";
    
    
    mysqli::real_query($query);
    
    


    이 방법은 PRIMARY KEY를 제거하여 중복된 값을 입력하지 않습니다.

    또는 중복된 값을 허용하는 데이터베이스 설정을 변경하는 방법은 다음과 같습니다.

    php
    
    $query = "ALTER TABLE users DROP PRIMARY KEY";
    
    
    mysqli::real_query($query);
    
    $query = "INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com')";
    
    
    mysqli::real_query($query);
    
    $query = "ALTER TABLE users ADD PRIMARY KEY (id)";
    
    
    mysqli::real_query($query);
    
    


    이 방법은 PRIMARY KEY를 제거하고 중복된 값을 입력한 후 PRIMARY KEY를 다시 추가하여 중복된 값을 허용합니다.

    중복된 값을 입력한 경우 중복된 값을 제거하는 방법은 다음과 같습니다.

    php
    
    $query = "DELETE FROM users WHERE id = 1";
    
    
    mysqli::real_query($query);
    
    $query = "INSERT INTO users (id, name, email) VALUES (1, 'John Doe', 'john@example.com')";
    
    
    mysqli::real_query($query);
    
    


    이 방법은 중복된 값을 입력한 경우 중복된 값을 제거하고 다시 중복된 값을 입력합니다.

    이러한 방법 중 하나를 선택하여 PRIMARY KEY에 중복된 값을 입력하지 않도록 하거나, PRIMARY KEY를 제거하거나, 중복된 값을 허용하는 데이터베이스 설정을 변경하거나, 중복된 값을 입력한 경우 중복된 값을 제거하는 방법을 선택할 수 있습니다.

    2025-06-11 03:44

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

검색

게시물 검색