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 / 함수 / strpos() / 문자열 안에서 특정 문자열 위치 반환하는 함수

PHP / 함수 / strpos() / 문자열 안에서 특정 문자열 위치 반환하는 함수

strpos()는 문자열 안에서 특정 문자열의 위치를 반환하는 함수이다. 문법 strpos(string $haystack, string $needle, int $offset = 0) haystack : 검색 대상이 되는 문자열 needle : 찾을 문자열 offset : 검색 시작 위치 찾을 문자열이 있다면 그 위치를 반환하고, 없다면 false를 반환한다. 예제 123456789에서 1의 위치를 반환한다. 값은 0이다. strpos( "123456789", "1" ) 123456789에서 2의 위치를 반환한다. 값은 1이다. strpos( "123456789", "2" ...

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

환경 로컬 서버에 설치된 MariaDB를 사용합니다.(특별한 케이스가 아니라면 MySQL에서도 잘 작동합니다.) 데이터베이스 이름은 codingfactory.net_example, 사용자이름은 codingfactory, 비밀번호는 1234qwer입니다. 테이블 만들기 id, username, password 세 개의 열을 가진 member 테이블을 만듭니다. id는 자동 증가하는 고유값을 가지는 키입니다. MariaDB > create table member ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> username ...

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 / 조건문 / switch

PHP / 조건문 / switch

switch는 하나의 변수를 여러 값과 비교할 때 유용한 조건문입니다. 문법 switch ( $var ) { case value1: statement1; break; case value2: statement2; break; ... default: statement3; } $var의 값을 value1과 비교하여 value1과 같으면 statement1을 실행하고 ...

PHP / Session / 로그인, 로그아웃, 로그인 상태에서만 보이는 콘텐츠 만들기

PHP / Session / 로그인, 로그아웃, 로그인 상태에서만 보이는 콘텐츠 만들기

PHP의 세션을 이용하여 로그인, 로그아웃을 만들 수 있습니다. 그리고 로그인한 사용자만 볼 수 있는 콘텐츠를 만들 수도 있습니다. 다음은 이를 구현한 아주 간단한 예제입니다. inc_head.php 모든 페이지에 들어갈 코드입니다. include 함수로 각 페이지에서 불러올 것입니다. 세션의 username 값이 있다면, 즉 로그인 상태라면 $jb_login에 TRUE를 할당합니다. <?php session_start(); if( isset( $_SESSION ...

PHP / MariaDB / 데이터베이스 값 가져와서 출력하기

PHP / MariaDB / 데이터베이스 값 가져와서 출력하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) employees 출력하기 employees 테이블에는 직원 목록이 있습니다. 그 목록을 가져와서 출력해보겠습니다. 데이터베이스 연결 정보 employees 데이터베이스에 연결하기 위한 정보를 입력합니다. localhost, username, password는 적절히 변경합니다. $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' ); 쿼리 작성하기 쿼리를 만듭니다. 아래는 employees 테이블에서 5개의 레코드를 가져오는 쿼리입니다. $jb_sql = "SELECT * FROM employees LIMIT ...

PHP / Session / 세션 값 출력하는 방법

PHP / Session / 세션 값 출력하는 방법

세션(Session)에 값을 저장했을 때, 그 값을 출력하는 방법을 간단한 예제로 알아보겠습니다. 세션을 초기화합니다. 이때 id가 하나 발급됩니다. session_start(); 세션의 no에 123을, username에 abc를 저장합니다. $_SESSION = 123; $_SESSION = 'abc'; 세션의 id를 출력합니다. echo session_id(); 세션의 no의 값을 출력합니다. echo $_SESSION; 세선의 username의 값을 출력합니다. echo $_SESSION; 세션의 모든 값을 출력합니다. var_dump( $_SESSION ); 다음은 전체 ...

PHP / 파일 업로드 만들기

PHP / 파일 업로드 만들기

PHP로 파일 업로드 기능을 구현해본다. 다음은 파일을 업로드하기 위한 간단한 HTML 문서. <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>PHP</title> </head> <body> <form action="" method="POST" enctype="multipart/form-data"> <p><input type="file" name="myfile"></p> <p><input type="submit" name="action" value="Upload"></p> </form> </body> </html> 파일을 업로드하면 $_FILES 번수에 배열로 name, type, size, ...

PHP / 함수 / password_hash() / 비밀번호 암호화하는 함수

PHP / 함수 / password_hash() / 비밀번호 암호화하는 함수

개요 password_hash()는 비밀번호를 암호화해주는 함수입니다. 입력한 값이 암호화된 비밀번호와 맞는지 확인하는 것은 password_verify() 함수로 합니다. 문법 password_hash ( string $password , int $algo ) $password 암호화할 문자열입니다. $algo 암호화 알고리즘을 정합니다. PASSWORD_DEFAULT : bcrypt 알고리즘을 사용합니다. PASSWORD_BCRYPT : CRYPT_BLOWFISH 알고리즘을 사용합니다. PASSWORD_ARGON2I : Argon2i hashing 알고리즘을 사용합니다. PHP를 Argon2를 사용할 수 있도록 설치한 경우에 사용 가능합니다. PASSWORD_ARGON2ID ...

PHP / 두 날짜 사이의 기간(차이) 구하는 방법

PHP / 두 날짜 사이의 기간(차이) 구하는 방법

두 날짜 사이의 차이 구하기 시작하는 날짜를 변수에 담는다. $from = new DateTime( '2022-01-01' ); 끝나는 날짜를 변수에 담는다. $to = new DateTime( '2022-03-31' ); diff 또는 date_diff로 차이를 구한다. echo $from -> diff( $to ) -> days; echo date_diff( $from, $to ) -> days; 2022년 1월은 31일, 2월은 28일, 3월은 31일로 총 90일이다. 위의 방식으로 계산하면 89일이 ...