PHP / MariaDB / 데이터베이스에 데이터 입력하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기)

폼(Form) 만들기 - employees_add.php

  • 데이터를 입력할 폼을 만듭니다.(number, date 타입과 required는 HTML5부터 지원합니다.)
  • 값은 employees_insert.php로 전송됩니다.
<form action="employees_insert.php" method="POST">
  <p><input type="number" name="emp_no" placeholder="NO" required></p>
  <p><input type="date" name="birth_date" required></p>
  <p><input type="text" name="first_name" placeholder="First Name" required></p>
  <p><input type="text" name="last_name" placeholder="Last Name" required></p>
  <p><select name="gender" required>
    <option value="M" selected>M</option>
    <option value="F">F</option>
  </select></p>
  <p><input type="date" name="hire_date" required></p>
  <button>ADD</button>
</form>
  • employees_add.php 전체 코드는 다음과 같습니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Add Employee</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-family: 12px;
      }
    </style>
  </head>
  <body>
    <h1>Add Employee</h1>
    <form action="employees_insert.php" method="POST">
      <p><input type="number" name="emp_no" placeholder="NO" required></p>
      <p><input type="date" name="birth_date" required></p>
      <p><input type="text" name="first_name" placeholder="First Name" required></p>
      <p><input type="text" name="last_name" placeholder="Last Name" required></p>
      <p><select name="gender" required>
        <option value="M" selected>M</option>
        <option value="F">F</option>
      </select></p>
      <p><input type="date" name="hire_date" required></p>
      <button>ADD</button>
    </form>
  </body>
</html>

데이터 추가하기 - employees_insert.php

  • 넘어온 값을 변수에 저장합니다.
$emp_no = $_POST[ 'emp_no' ];
$birth_date = $_POST[ 'birth_date' ];
$first_name = $_POST[ 'first_name' ];
$last_name = $_POST[ 'last_name' ];
$gender = $_POST[ 'gender' ];
$hire_date = $_POST[ 'hire_date' ];
  • DB와 연결하는 코드, DB에 데이터를 추가하는 SQL문을 만듭니다.
$jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
$jb_sql = "INSERT INTO employees ( emp_no, birth_date, first_name, last_name, gender, hire_date ) VALUES ( '$emp_no', '$birth_date', '$first_name', '$last_name', '$gender', '$hire_date' );";
  • 실행합니다.
mysqli_query( $jb_conn, $jb_sql );
  • employees_add.php를 거치지 않고 바로 employees_insert.php에 접속하는 것을 대비해서 if 문을 만듭니다.
  • 값이 없이 employees_insert.php에 접속한 경우 Fail을 출력하고, 값이 있는 경우 데이터를 추가한 후 Successs를 출력합니다.
if ( is_null( $emp_no ) ) {
  echo '<h1>Fail!</h1>';
} else {
  $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
  $jb_sql = "INSERT INTO employees ( emp_no, birth_date, first_name, last_name, gender, hire_date ) VALUES ( '$emp_no', '$birth_date', '$first_name', '$last_name', '$gender', '$hire_date' );";
  mysqli_query( $jb_conn, $jb_sql );
  echo '<h1>Success!</h1>';
}
  • employees_insert.php 전체 코드는 다음과 같습니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Insert Employee</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-family: 12px;
      }
    </style>
  </head>
  <body>
    <?php
      $emp_no = $_POST[ 'emp_no' ];
      $birth_date = $_POST[ 'birth_date' ];
      $first_name = $_POST[ 'first_name' ];
      $last_name = $_POST[ 'last_name' ];
      $gender = $_POST[ 'gender' ];
      $hire_date = $_POST[ 'hire_date' ];
      if ( is_null( $emp_no ) ) {
        echo '<h1>Fail!</h1>';
      } else {
        $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
        $jb_sql = "INSERT INTO employees ( emp_no, birth_date, first_name, last_name, gender, hire_date ) VALUES ( '$emp_no', '$birth_date', '$first_name', '$last_name', '$gender', '$hire_date' );";
        mysqli_query( $jb_conn, $jb_sql );
        echo '<h1>Success!</h1>';
      }
    ?>
    <p>
      <a href="employees.php">Employees Lists</a>
      <a href="employees_add.php">Add Employee</a>
     </p>
  </body>
</html>
  • 값을 입력하고 ADD를 클릭하면...

  • Success를 출력하고...

  • DB에 추가된 것을 확인할 수 있습니다.
MariaDB [employees]> SELECT * FROM employees LIMIT 5;
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|      1 | 2019-03-24 | ASD        | QWE       | M      | 2019-03-21 |
|  10001 | 1953-09-02 | Georgi     | Facello   | M      | 1986-06-26 |
|  10002 | 1964-06-02 | Bezalel    | Simmel    | F      | 1985-11-21 |
|  10003 | 1959-12-03 | Parto      | Bamford   | M      | 1986-08-28 |
|  10004 | 1954-05-01 | Chirstian  | Koblick   | M      | 1986-12-01 |
+--------+------------+------------+-----------+--------+------------+
5 rows in set (0.01 sec)
  • 전달된 값이 없으면 Fail을 출력합니다.

같은 카테고리의 다른 글
PHP / 함수 / strlen(), mb_strlen() / 문자열의 길이 구하는 함수

PHP / 함수 / strlen(), mb_strlen() / 문자열의 길이 구하는 함수

개요 strlen()와 mb_strlen()은 문자열의 길이를 구하는 함수입니다. strlen()은 바이트 기준, mb_strlen()은 문자셋 기준입니다. 한글 등에서는 값이 다릅니다. 문법 - strlen() strlen( string ) string : 길이를 구할 문자열입니다. echo strlen( '123 abc' ); 는 7을 출력합니다. echo strlen( '가나다' ); 는 9를 출력합니다. 문법 - mb_strlen() mb_strlen( string ) string : 길이를 구할 문자열입니다. encoding : 인코딩 방식을 정합니다. 정하지 않으면 ...

PHP / 에러 출력하는 방법, 에러 출력하지 않는 방법

PHP / 에러 출력하는 방법, 에러 출력하지 않는 방법

PHP 코딩을 하고 웹 브라우저에서 실행을 시킵니다. 그런데 원하는 결과가 나오지 않거나 '페이지를 표시할 수 없습니다' 같은 메시지가 나오는 경우가 있습니다. 반대로 결과를 도출하는 데는 문제가 없으나 에러 메시지가 나오는 경우가 있습니다. 보통 개발 과정에서는 어떤 에러든 표시하는 게 좋고, 서비스 중이라면 왠만한 에러는 보이지 않는 게 좋습니다. 어떻게 에러 표시 여부를 ...

PHP / 회원 관리 / 로그인 페이지, 로그인 완료 페이지

PHP / 회원 관리 / 로그인 페이지, 로그인 완료 페이지

로그인 페이지 - login.php 페이지를 열면 POST 방식으로 넘어온 username과 password를 저장합니다. $username에 값이 없다면 이후의 PHP 코드는 실행되지 않습니다. 양식에 값을 입력하고 로그인 버튼을 클릭하면 $username에 값이 있으므로 이후의 PHP 코드가 실행됩니다. $username에 값이 있다면 DB에서 username에 해당하는 password를 가져와서 $encrypted_password에 저장합니다. 일치하는 username이 존재하지 않는다면 $encrypted_password의 값이 없으므로 '사용자이름이 존재하지 않습니다.'를 출력합니다. 일치하는 username이 ...

PHP / 반복문 / foreach

PHP / 반복문 / foreach

foreach는 배열의 각 값에 대하여 반복 작업을 합니다. 문법 foreach ( array_expression as $value ) { statement; } foreach ( array_expression as $value ) : statement; endforeach; 예제 배열 jba의 각 값을 변수 jbv에 넣습니다. 변수 jbv를 두 배하고 1을 뺀 값을 변수 jbr에 넣습니다. 변수 jbr을 출력합니다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> ...

PHP / 함수 / phpinfo() / PHP 정보와 설정 출력하는 함수

PHP / 함수 / phpinfo() / PHP 정보와 설정 출력하는 함수

개요 phpinfo()는 PHP 정보와 설정을 표로 정리해서 보여주는 함수입니다. PHP 파일 생성 다음의 코드를 가진 phpinfo.php 파일을 만듭니다.(파일 이름은 다른 것으로 해도 상관없습니다.) <?php phpinfo(); ?> 웹브라우저로 접속 웹브라우저로 phpinfo.php에 접속합니다. 그러면 다음처럼 정보를 출력합니다. PHP / 함수 / phpversion() – PHP 버전 출력하는 함수

PHP / 연산자 / 비교 연산자

PHP / 연산자 / 비교 연산자

비교 연산자는 두 값을 비교하는 연산자입니다. $a == $b $a와 $b가 같으면 TRUE를 반환합니다. 예를 들어 $a = 123; $b = 123; 이면 TRUE입니다. 또한 $a = 123; $b = '123'; 일 때도 TRUE입니다. $a === $b $a와 $b가 같고, 자료형도 같아야 TRUE를 반환합니다. 예를 들어 $a = 123; $b = 123; 이면 TRUE입니다. 하지만 $a = 123; $b = '123'; 은 FALSE입니다. $a != $b $a가 $b와 같지 ...

PHP / 연산자 / 증가 연산자, 감소 연산자

PHP / 연산자 / 증가 연산자, 감소 연산자

++$a 값을 증가시킨 후 $a를 반환합니다. 예를 들어 $a = 1; echo ++$a; 는 2를 출력합니다. $a++ $a를 반환한 후 값을 증가시킵니다. 예를 들어 $a = 1; echo $a++; 은 1을 출력하고, $a의 값은 2가 됩니다. --$a 값을 감소시킨 후 $a를 반환합니다. 예를 들어 $a = 1; echo --$a; 는 0을 출력합니다. $a-- $a를 반환한 후 값을 감소시킵니다. 예를 들어 $a = 1; echo $a--; 는 1을 출력하고, $a의 값은 0이 됩니다. 알파벳 알파벳도 증가 ...

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

Ubuntu에 Apache로 웹서버를 만들고 PHP를 사용할 수 있게 만든 경우, 기본적으로 확장자가 php인 경우에만 PHP 코드를 인식합니다. 만약 확장자가 html일 때로 PHP 코드가 인식되도록 하고 싶다면, Apache 설정을 바꿔줘야 합니다. /etc/apache2/mods-enabled/mime.conf 파일을 엽니다. 다음 코드를 추가합니다. AddType application/x-httpd-php .html 확장자가 htm인 경우에도 PHP를 인식하도록 하고 싶다면 다음처럼 합니다. AddType application/x-httpd-php .html .htm 웹서버를 다시 로드합니다. service apache2 ...

PHP / 연산자 / 할당 연산자

PHP / 연산자 / 할당 연산자

PHP의 할당 연산자는 =이다. 등호 오른쪽을 등호 왼쪽에 저장한다.('같다'를 표현할 때는 ==를 사용한다.) 변수 a에 10을 할당한다. $a = 10; 여러 번 할당하면 마지막에 할당된 것이 값이 된다. 즉 변수 a의 값은 20이다. $a = 10; $a = 20; 기존 값을 사용할 수 있다. 변수 a의 값은 20이다. $a = 10; $a = $a + 10;

PHP / number_format() / 숫자 표현 형식 정하는 함수

PHP / number_format() / 숫자 표현 형식 정하는 함수

number_format() 함수로 숫자의 표현 형식을 정한다. 천 단위 쉼표를 찍을 수도 있고, 소숫점 아래 표시할 숫자의 개수를 정할 수도 있다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> body { ...