오픈소스를 모아보자1 - PDO DB Class > RESTful

RESTful

오픈소스를 모아보자1 - PDO DB Class 정보

오픈소스를 모아보자1 - PDO DB Class

본문

먼저 그누보드의 db처리는 쉬워보이지만, 모듈화가 되어 있지 않아서 아쉬운 부분이 많습니다.

특히 파라메타 bind 를 사용하지 않고, php 변수를 직접 쿼리에 넣는 방식을 쓰는데, SQL Injection 의 원인이 됩니다.

 

https://sir.kr/so_restful/11

이글에서도 간략히 얘기했지만, 보안을 생각한다면, PDO는 필수사항입니다. 

 

따라서 그누보드 RestApi 서비스를 만들때, PDO를 쉽게 사용할수 있도록 Wrapper 파일이 하나 필요합니다.

(프레임웍을 쓴다면, 프레임웍에서 제공하는 기능을 쓰면 됩니다. ORM도 좋긴한데, 저는 안쓸것 같습니다. 그누보드DB에 ORM은 어울리지 않습니다.)

 

github에서 검색해보니 심플한 프로젝트가 하나 있습니다. PHP class 파일이 3개이고, Apache2.0 라이센스입니다.

https://github.com/lincanbin/PHP-PDO-MySQL-Class/blob/master/src/PDO.class.php

저는 이걸 조금 고쳐서 써볼려고 합니다. 파일3개도 많거든요. 일단 필요한 기능 위주로 1개로 통합합니다.

 

사용법도 단순하고, bind같은 복잡한것도 쉽게 처리해줍니다.

 


$db->query("UPDATE g5_member SET mb_login=now() WHERE mb_id = :mb_id", ['mb_id'=>'test01']);
 
$row  = $db->row("SELECT * FROM g5_member where mb_id = :mb_id", ['mb_id'=>'test01']);
 
$rows = $db->query("SELECT * FROM g5_write_notice WHERE wr_is_comment=0 ORDER BY wr_id DESC LIMIT 0, 30");
 
$total_count = $db->single("SELECT count(*) cnt FROM g5_write_notice WHERE wr_is_comment =0");
 

 

이외에 간단한 쿼리 빌더용 메소드도 있습니다.

 

 

ps) 그누보드 자체에 PDO를 지원하는 코드 추가했으면 합니다. sql_query 에 mysqli_ 함수가 아닌 클래스형으로 지원했으면 좋겠습니다.. 물론 희망사항입니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

추천
0

댓글 1개

전체 96 |RSS
RESTful 내용 검색

회원로그인

진행중 포인트경매

  1. 참여71 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT