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을 출력합니다.

Related Posts

PHP / 반복문 / while, do-while, for

PHP / 반복문 / while, do-while, for

while 문법 while ( condition ) {   statement; } condition을 만족할 때까지 중괄호 안에 있는 statement를 실행합니다. 중괄호 대신 콜론(:)과 endwhile을 사용할 수도 있습니다. while ( condition ) :   statement; endwhile; 예제 <?php   $i = 1; // 초기값 설정   while ( $i < 10 ) ...

PHP / PHPMailer / SMTP를 이용하여 메일 발송하게 하는 라이브러리

PHP / PHPMailer / SMTP를 이용하여 메일 발송하게 하는 라이브러리

PHP의 mail() 함수를 이용하여 메일을 보낼 수 있다. 그런데 이렇게 발송한 메일은 스팸으로 인식되는 경우가 많다. 정상적으로 메일을 수신토록 하려면 SMTP를 이용하는 게 좋다. PHPMailer는 SMTP를 이용하여 메일 발송하게 하는 라이브러리다. PHPMailer를 이용하여 메일을 발송하는 방법을 정리한다. 다운로드 및 업로드 GitHub에서 소스를 다운로드한다.(https://github.com/PHPMailer/PHPMailer) 압축을 풀고 서버에 업로드한다. Composer를 이용하여 설치할 수도 있지만, 서버를 제어할 권한이 없는 ...

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

PHP / 함수 / mysqli_connect() / MySQL server 또는 MariaDB Server에 연결하는 함수

개요 mysqli_connect는 MySQL server 또는 MariaDB Server에 연결하는 함수입니다. 문법 mysqli_connect( host, username, password, databasename, port, socket ); 예제 1 데이터베이스 서버에 연결하고 결과를 출력합니다. <?php $jb_connect = mysqli_connect( 'localhost', 'jb', '1234', 'employees' ); var_dump( $jb_connect ); ?> 연결에 성공한 경우입니다. 연결에 실패하면 false를 반환합니다. 예제 2 연결에 성공하면 Success, 실패하면 Failure를 출력합니다. <!doctype html> <html lang="ko"> <head> ...

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 / 연산자 / 비교 연산자

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 / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

GET과 POST HTML의 form을 이용하여 값을 전송하는 방식은 get과 post 두 가지가 있습니다. PHP로 그 값을 받아서 사용하는 방법을 알아봅니다. GET 방식으로 전송한 경우 다음은 GET 방식으로 값을 전송하는 간단한 예제입니다. form.php <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>HTML</title> <style> * { ...

PHP / 현재 페이지의 URL 정보 가져오는 방법

PHP / 현재 페이지의 URL 정보 가져오는 방법

$_SERVER를 이용하여 현재 페이지의 URL 정보를 가져올 수 있다. $_SERVER : 도메인 $_SERVER : 도메인 다음 부분 $_SERVER : GET 방식으로 넘어온 값 $_SERVER : 도메인 다음 부분에서 GET 방식으로 넘어온 값 제외 basename( $_SERVER ) : 파일 이름 예를 들어 URL이 https://example.codingfactory.net/php/php.php?a=123&b=456라고 할 때, 결과는 다음과 ...

PHP / 문법

PHP / 문법

HTML 문서에 PHP 코드 넣기 PHP 코드는 HTML 문서에 넣는다. 이를 실행하기 위해서는 어느 부분이 PHP 코드인지 알려줘야 한다. PHP 코드 부분을 명시하기 위한 방법은 여러 가지가 있는데, 보통 을 사용한다. 방법 1 <?php와 ?> 사이에 PHP 코드를 넣는다. <?php // PHP Code ?> 방법 2 script 태그 사이에 PHP 코드를 넣는다. <script language="php"> // ...

PHP / 함수 / var_dump() / 변수의 정보를 출력하는 함수

PHP / 함수 / var_dump() / 변수의 정보를 출력하는 함수

개요 var_dump는 변수의 정보를 출력하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 var_dump( $var1, $var2, ... ); 결과의 해석은 다음과 같습니다. int(1) : 정수이고, 값은 1입니다. float(1.1) : 실수이고, 값은 1.1입니다. string(5) "hello" : 5개의 문자로 이루어진 문자열이고, 값은 hello입니다. array(2) { => float(1.1) } : 2개의 값을 가진 배열이고, 첫번째 값은 정수 1, 두번째 값은 ...

PHP / addslashes(), stripslashes()

PHP / addslashes(), stripslashes()

addslashes() 작은 따옴표, 큰 따옴표, 백슬래시 앞에 백슬래시를 추가한다. 즉, PHP 'PHP' "PHP"를 PHP \'PHP\' \"PHP\"로 변경한다. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> <style> * { font-family: "Consolas", monospace; ...