CodeIgniter3
05. [CodeIgniter3] 데이터베이스 설정 & 연결 & 데이터 삽입(insert)
drizzle0925
2021. 12. 29. 10:20
728x90
데이터 베이스에 데이터를 삽입하기 위해 데이터 베이스와 테이블을 생성합니다.
create database db;
create table users(
user_id int unsigned primary key auto_increment,
name varchar(50),
email varchar(100),
mobile bigint unsigned
);
데이터베이스 설정
Application/config/database.php 파일에 $db에 필요한 값들을 입력합니다.
(port 번호가 3306을 사용하면 port는 따로 설정하지 않아도 됩니다.)
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root', // 로그인 유저정보
'password' => '111111', // 비밀번호
'database' => 'db', // 접속할 데이터 베이스
'port' => 3307 // port 번호
...
);
데이터베이스에 연결
CodeIgniter에서는 2가지 방법으로 데이터베이스와 연결할 수 있습니다.
1. 자동 연결 : 자동 연결은 application/config/autoload.php를 사용하여 수행할 수 있습니다.
$autoload['libraries'] = array('database');
2. 수동 연결 : 특정 컨트롤러에 대한 데이터베이스 연결을 원하는 경우 수동 연결을 사용할 수 있습니다.
수동 연결에서는 모든 컨트롤러에 대해 연결을 생성해야 하므로 자동 연결을 사용하는 것이 좋습니다.
$this->load->database();
Contoller 만들기
Application/controllers/Hello.php 에 아래 코드를 입력합니다.
<?php
class Hello extends CI_Controller
{
public function __construct()
{
// CodeIgniter의 기본 생성자 호출
parent::__construct();
// 데이터베이스 라이브러리를 수동으로 로드 (auto_load를 사용하지 않는 방법)
$this->load->database();
// 모델 로드
$this->load->model('Hello_Model');
}
public function savedata()
{
// 등록 보기 양식 로드
$this->load->view('registration');
// 제출 버튼 확인
if($this->input->post('save'))
{
// 폼 데이터를 가져와서 로컬 변수에 저장
$n = $this->input->post('name');
$e = $this->input->post('email');
$m = $this->input->post("mobile");
// Hello_Model의 saverecord 메소드를 호출하고 변수를 매개변수로 전달
$this->Hello_Model->saverecords($n, $e, $m);
echo "레코드를 저장하였습니다.";
}
}
}
?>
View 만들기
Application/views/registration.php 파일을 생성하고 아래 코드를 입력합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>등록 폼</title>
</head>
<body>
<form method="post">
<table width="600" border="1" cellspacing="5" cellpadding="5">
<tr>
<td width="230">이름을 입력하세요</td>
<td width="329"><input type="text" name="name" /></td>
</tr>
<tr>
<td>이메일 주소를 입력하세요</td>
<td><input type="text" name="email"/></td>
</tr>
<tr>
<td>연락처를 입력하세요</td>
<td><input type="text" name="mobile"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="데이터저장" name="save" /></td>
</tr>
</table>
</form>
</body>
</html>
Model 만들기
Application/models/Hello_Model.php 경로에 파일을 만들고 아래 코드를 입력합니다.
<?php
class Hello_Model extends CI_Model
{
function saverecords($name, $email, $mobile)
{
$query = "INSERT INTO users values('','$name','$email','$mobile')";
$this->db->query($query);
}
}
?>
Hello Contoller의 savedata 메서드를 호출합니다.
http://localhost/index.php/hello/savedata
레코드를 입력하고 데이터 저장 버튼을 클릭합니다.
정상적으로 레코드가 저장되었습니다.
저장된 레코드를 확인해봅니다.
Github
https://github.com/jun0925/study/commit/d1faa89df39a96e06aa4ea7cbe502bcab8adc285
728x90