XAMPP을 켜고 MySQL을 Start 한다.
http://localhost/phpmyadmin/
에 접속한 뒤, 사용자 계정 탭 에서 사용자 추가를 눌러 데이터베이스와 데이터베이스 사용자(user)를 만든다.
모든 권한을 체크한다.
왼쪽 하단의 실행 버튼을 누른다.
CREATE TABLE 테이블 이름 (
열1이름,
열2이름
인덱스
) ENGINE=MySQL 엔진이름;
CREATE TABLE `tbl_person` (
`person_id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(256) NOT NULL ,
`age` INT NOT NULL ,
PRIMARY KEY (`person_id`)
) ENGINE = InnoDB;
NOT NULL
은 비어있으면 안 된다는 의미이다.InnoDB
는 MySQL 데이터베이스 엔진이다.
SELECT 컬럼들 FROM 테이블명 WHERE 조건컬럼=조건값;
SELECT * FROM tbl_person where person_id = 1;
*
은 모든 칼럼을 의미한다.
INSERT INTO 테이블 이름 (컬럼1이름,컬럼2이름) values( 컬럼1값, 컬럼2값);
INSERT INTO tbl_person (name, age) values ('yse', 50);
,
로 구문하며 칼럼의 개수와 값의 개수는 일치해야 한다.'
가 아닌 "
로 감싼 경우 동작하지 않는다.
UPDATE 테이블명 set 컬럼1이름=컬럼1값, 컬럼2이름=컬럼2값, 컬럼3이름=컬럼3값 where 조건
UPDATE tbl_person set name='yse', age='30' where person_id = 1;
DELETE 테이블명 where 조건
DELETE FROM tbl_person where person_id = 1;
<?php
function db_get_pdo()
{
// 데이터베이스 서버의 주소
$host = 'localhost'; // localhost: 본인의 컴퓨터
// 데이터베이스 서버의 포트
$port = '3306';
// 데이터베이스 이름
$dbname = 'php3min';
// 인코딩 방법
$charset = 'utf8';
// 데이터베이스 사용자 이름
$username = 'php3min';
// 데이터베이스 사용자 비밀번호
$db_pw = "1234";
// 데이터베이스 연결 문자열
$dsn = "mysql:host=$host;port=$port;dbname=$dbname;charset=$charset";
$pdo = new PDO($dsn, $username, $db_pw); // pdo: 데이터베이스에 연결
return $pdo;
}
function db_select($query, $param=array()){
// MySQL에 접속하는 객체
$pdo = db_get_pdo();
try {
$st = $pdo->prepare($query);
// 쿼리 실행
$st->execute($param);
// 실행한 데이터를 가지고 옴
$result = $st->fetchAll(PDO::FETCH_ASSOC);
// null로 초기화할 경우 데이터베이스 커넥션 끊김
$pdo = null;
return $result;
} catch (PDOException $ex) {
return false;
// 쿼리 실패 혹은 다른 문제 발생 시에도 쿼리 연결을 끊음
} finally {
$pdo = null;
}
}
// 실행 결과를 출력하기 위한 부분
var_dump(db_select("select * from tbl_person"));
echo "<br />";
var_dump(db_select("select * from tbl_person where person_id = ?", array(1)));
echo "<br />";
var_dump(db_select("select * from tbl_person where person_id = :person_id", array('person_id' => 1)));
array(1) { [0]=> array(3) { ["person_id"]=> string(1) "1" ["name"]=> string(3) "yse" ["age"]=> string(2) "30" } }
?
로 넣는다.db_select("select * from tbl_person where person_id = ?", array(1))
select * from tbl_person where person_id = 1
:키
로 넣는다.db_select("select * from tbl_person where person_id = :person_id", array('person_id' => 1))
select * from tbl_person where person_id =
// 성공 시 PK를, 실패 시 false를 반환한다.
function db_insert($query, $param = array())
{
$pdo = db_get_pdo();
try {
$st = $pdo->prepare($query);
$result = $st->execute($param);
// 자동으로 설정되는 PK를 가져옴
$last_id = $pdo->lastInsertId();
$pdo = null;
if ($result) {
return $last_id;
} else {
return false;
}
} catch (PDOException $ex) {
return false;
} finally {
$pdo = null;
}
}
var_dump(
db_insert(
"insert into tbl_person (name, age) values (?,?)",
array("php", 25)
)
);
// 실행 확인 후 삭제 시작
var_dump(
db_insert(
"insert into tbl_person (name, age) values (:name,:age)",
array("name" =>"php7", "age" => 5)
)
);
// 실행 확인 후 삭제 끝
string(1) "2" string(1) "3"
function db_update_delete($query, $param = array())
{
$pdo = db_get_pdo();
try {
$st = $pdo->prepare($query);
$result = $st->execute($param);
$pdo = null;
return $result;
} catch (PDOException $ex) {
return false;
} finally {
$pdo = null;
}
}
// 실행 확인 후 삭제 시작
var_dump(
db_update_delete(
"update tbl_person set age=:age where person_id = :person_id",
array("age" => 4, "person_id" => 1)
)
);
var_dump(
db_update_delete(
"delete from tbl_person where person_id = ?",
array(3)
)
);
// 실행 확인 후 삭제 끝
bool(true) bool(true)