[PHP DB] MySQL, 데이터 입력(INSERT INTO)

INSERT INTO 선언문은 새로운 레코드(테이블에서 행, ROW, 실제자료)를 테이블에 삽입할때 사용됩니다.


 

데이터베이스 테이블에 데이터 입력하기

INSERT INTO 선언문은 새로운 레코드를 데이터베이스 테이블에 입력할때 사용합니다.

문법

INSERT INTO 선언문은 두가지 형태로 코딩할 수 있습니다.

첫번째 형태는 데이터가 삽입될 컬럼 이름을 지정하지 않고, 입력될 값만 나열합니다:

INSERT INTO table_name
VALUES (value1, value2, value3,...)


두번째 형태는 컬럼 이름과 삽입될 값을 모두 나열합니다:

INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)

PHP가 위의 선언문을 실제로 실행시키도록 하려면 mysql_query() 함수를 사용해야 합니다.
이 함수는 쿼리나 명령을 MySQL 연결로 전송하는데 사용됩니다. 

 

예제

이전의 웹기술/PHP 카테고리에서 "Persons"라는 이름의 테이블을 만들고, 그 하위에 "FirstName", "LastName", "Age"라는 3개의 컬럼을 생성했었습니다. 이 예제에서도 그때 생성해두었던 같은 테이블을 사용합니다.
아래의 예제에서는 "Persons" 라는 이름의 테이블에 2개의 새로운 레코드를 추가합니다:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age) 
VALUES ('Glenn', 'Quagmire', '33')");
mysql_close($con);
?>


 

 

폼으로부터 데이터베이스로 자료 입력하기

이번에는 하나의 HTML 폼을 만든다음, 이 폼으로부터 값을 입력받아서 이 값을 "Persons" 테이블에 삽입합니다.
아래는 HTML 폼입니다:

<html>
<body>
<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

위의 예제에서 사용자가 HTML폼의 submit, 전송 버튼을 클릭하면 폼의 데이터는 "insert.php"로 보내집니다.
"insert.php" 파일은 데이터베이스로 연결한 다음, PHP의 $_POST 변수로 폼으로부터 값을 입력받습니다.
그리고 난뒤, mysql_query() 함수가 INSERT INTO 선언문을 실행하게 되고, 새로운 레코드(행, ROW, 자료)가
"Persons" 테이블에 삽입되게 됩니다.

 

아래가 "insert.php" 페이지의 코드입니다:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";
mysql_close($con)
?>
최종 수정일:
서지스윈

서지스윈

IT와 기술을 이해하고, 유용한 소프트웨어를 발견하도록 돕고 싶습니다. 윈도우(Windows), 맥(macOS), 리눅스(Linux), 스마트폰 앱, 웹 서비스, 기획 시리즈물까지. 더 많은 것을 발견하고, 더 많은 것을 해보세요.