SQL 테이블을 만들고 동시에 데이터를 삽입 할 수 있습니까?

Nov 28 2020

생성 테이블을 제거하면 작동하지만 코드에서이 작업을 수행 할 수 있습니까?

여기에 코드가 있습니다

    $sql = "CREATE TABLE student ( student_id INT, name VARCHAR(20), major VARCHAR(20), PRIMARY KEY(student_id) ) INSERT INTO student VALUE(1, 'Jack', 'biology')"; if ($connect -> query($sql) === TRUE) { echo "New Table Created! <br><br>"; } else { echo "Error : " . $sql . " <br><br>" . $connect -> error . "<br><br>";
    }
    
    echo "Connected Successfully!";

다음은 생성 테이블을 제거하지 않은 오류입니다.

오류 : CREATE TABLE student (student_id INT, name VARCHAR (20), major VARCHAR (20), PRIMARY KEY (student_id)); INSERT INTO student VALUE (2, 'kate', 'sociology')

SQL 구문에 오류가 있습니다. 8 행의 'INSERT INTO student VALUE (2,'kate ','sociology ')'근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서를 확인하십시오.

답변

2 JM7 Nov 28 2020 at 10:22

코드에 2 개의 오타가 있습니다.

  • 잃어버린 ";" CREATE 및 INSERT 문 사이.

  • INSERT 문은 VALUE가 아닌 VALUES를 사용합니다.

     $sql = "CREATE TABLE student (
         student_id INT,
         name VARCHAR(20),
         major VARCHAR(20),
         PRIMARY KEY(student_id)
     );
    
     INSERT INTO student VALUES (1, 'Jack', 'biology')";
    

그 외에도 첫 번째 문서에서 언급했듯이 mysqli Multiple 문 및 mysqli_multi_query ()에 대한 공식 문서를 확인하십시오 .

API 함수 mysqli_query () 및 mysqli_real_query ()는 서버에서 다중 쿼리를 활성화하는 데 필요한 연결 플래그를 설정하지 않습니다. 실수로 인한 SQL 주입 공격의 가능성을 줄이기 위해 여러 문에 추가 API 호출이 사용됩니다.

또는 각 쿼리를 개별적으로 실행하도록 코드를 변경할 수도 있습니다.