>  기사  >  백엔드 개발  >  php pdo 캡슐화 클래스는 mysql 데이터 추가, 삭제, 확인 및 수정을 구현합니다.

php pdo 캡슐화 클래스는 mysql 데이터 추가, 삭제, 확인 및 수정을 구현합니다.

WBOY
WBOY원래의
2016-07-25 08:51:491680검색
  1. define('DSN', 'mysql:host=127.0.0.1;dbname=baozhong_tour'); //데이터베이스 주소 및 데이터베이스 이름에 대한 상수

  2. define('DB_USERNAME', 'root'); //데이터베이스 사용자 이름
  3. define('DB_USERPWD', '') //데이터베이스 비밀번호
  4. ?> ;
  5. /**
  6. * @author shuimugan
  7. * @version 0.2
  8. * @return PDOStatement
  9. */
  10. function getConn() {
  11. try {
  12. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD); pdo 객체 생성, 데이터베이스 매개변수 정보 전달
  13. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) //데이터베이스 오류 정보 설정
  14. $db->query('set names utf8 ; '); //인코딩을 utf8로 설정
  15. return $db;}
  16. catch (PDOException $e) {
  17. echo '데이터 처리 오류입니다. 웹사이트 관리자에게 문의하세요!'; > print_r($e);//매우 상세한 오류 메시지, 온라인에 접속한 후 이 문장을 댓글로 달아야 합니다!
  18. return false
  19. }
  20. }
  21. /**
  22. * @author shuimugan
  23. * @version 0.2
  24. * @param String $tablename 테이블 이름, 유형은 문자열
  25. * @param Array $column_name 열 이름, 배열 형식이 필요합니다
  26. * @ param String $condition 조건, 예: 'where name=? and pws=?' 또는 'name like?'
  27. * @param Array $condition_value 조건에 해당하는 데이터, 유형은 ' name=? 및 pws =?',
  28. * @return 배열은 결과 집합 배열 형식을 반환합니다.
  29. * @example $column_name=array('*')
  30. $condition_value=array('1') ;
  31. $limit='limit 0,10';
  32. $res=easy_select('user', $column_name, 'where id=?', $condition_value,$limit);*/
  33. function easy_select($tablename,$column_name,$condition,$condition_value,$limit) {
  34. try {
  35. $db=getConn()
  36. $sql='select ';//SQL 문 초기화
  37. foreach ($column_name as $col_name) {
  38. //SQL 문에 열 이름을 동적으로 추가합니다.
  39. if($col_name=='*'){
  40. $sql.='*' ;
  41. break;
  42. }
  43. if($col_name==end($column_name))
  44. {
  45. $sql.=$col_name." ";//마지막인 경우 ,
  46. }else {
  47. $sql.=$col_name.", ";//열 이름 쉼표
  48. }
  49. }
  50. $sql로 연결되지 않습니다. .="from ".$tablename." " ;//스플라이싱 테이블 이름
  51. $sql.=$condition.';//스플라이싱 조건문
  52. if(strlen($limit)>0){
  53. $sql.=$limit;/ /Splice 제한 문
  54. }
  55. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//pdo 객체 생성 및 데이터베이스 매개변수 정보 전달
  56. $ db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//데이터베이스 오류 정보 설정
  57. $db->query('set names utf8;');//인코딩을 utf8로 설정
  58. $stmt = $db->prepare($ sql);
  59. $i=1;//계산 시작,
  60. $j=count($condition_value)
  61. $i <= $j; ) {
  62. $stmt->bindParam($i, $condition_value[$i-1]);// 매개변수 바인딩
  63. $i>}
  64. // 쿼리
  65. $stmt-> setFetchMode(PDO::FETCH_ASSOC);//필드를 통해 데이터를 가져오도록 설정
  66. $stmt->execute()
  67. //데이터 가져오기
  68. return $stmt->fetchAll();
  69. //return $stmt->rowCount();
  70. } catch (PDOException $e) {
  71. return false
  72. echo '데이터 처리 오류; 웹사이트 관리자에게 문의하세요!';
  73. print_r ($e);//매우 상세한 오류 메시지입니다.
  74. }
  75. }
  76. /**
  77. * @author shuimugan
  78. * @version 0.2
  79. * @param String $tablename 테이블 이름, 유형은 문자열
  80. * @param Array $column_name 열 이름, 배열 형식이 필요합니다
  81. * @ param String $condition 조건, 예: 'where name=? and pws=?' 또는 'name like?'
  82. * @param Array $condition_value 조건에 해당하는 데이터, 유형은 ' name=? 및 pws =?',
  83. * @return int는 레코드 수를 반환합니다.
  84. * @example $column_name=array('*')
  85. $condition_value=array('1');
  86. $limit ='limit 0,10';
  87. $res=easy_selectCount('user', $column_name, 'where id=?', $condition_value,$limit)
  88. */
  89. function easy_selectCount($tablename,$ column_name,$condition,$condition_value,$limit) {
  90. try {
  91. $db=getConn()
  92. $sql='select ';/ /SQL 문 초기화
  93. foreach ($column_name as $col_name) {
  94. //SQL 문에 열 이름을 동적으로 추가합니다.
  95. if($col_name=='*'){
  96. $sql. ='*';
  97. break;
  98. }
  99. if($col_name==end($column_name))
  100. {
  101. $sql.=$col_name." ";//If 마지막 명령문입니다.
  102. }else {
  103. $sql.=$col_name.", ";//열 이름 쉼표 연결
  104. }
  105. }
  106. $sql .="from ".$tablename." ";//스플라이싱 테이블 이름
  107. $sql.=$condition.';//스플라이싱 조건문
  108. if(strlen($limit)>0){
  109. $sql.=$limit;//접속 제한문
  110. }
  111. ;
  112. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//pdo 객체를 생성하고 데이터베이스 매개변수 정보를 전달합니다
  113. $db->setAttribute(PDO::ATTR_ERRMODE, PDO: :ERRMODE_EXCEPTION );//데이터베이스 오류 정보 설정
  114. $db->query('set names utf8;');//인코딩을 utf8로 설정
  115. $stmt = $db->prepare($sql) ;
  116. $i=1;//계산 시작,
  117. $j=count($condition_value)
  118. for (; $i <= $j; ) {
  119. $stmt- >bindParam($i, $condition_value[$i-1]);// 매개변수 바인딩
  120. $i
  121. }
  122. // 쿼리
  123. //$stmt-> setFetchMode( PDO::FETCH_ASSOC);//필드를 통해 데이터를 가져오도록 설정
  124. $stmt->execute()
  125. // 데이터 가져오기
  126. return $stmt->rowCount(); >} catch (PDOException $e) {
  127. return false;
  128. echo '데이터 처리 오류입니다. 웹사이트 관리자에게 문의하세요!'
  129. print_r($e);//매우 자세한 오류 정보가 있어야 합니다. 온라인 접속 후 댓글 작성
  130. }
  131. }
  132. /**
  133. * @author shuimugan
  134. * @version 0.2
  135. * @param String $tablename 테이블 이름, 유형은 문자열
  136. * @param Array $column_name 열 이름, 배열 형식이 필요합니다
  137. * @ param Array $column_value 해당 데이터, 필수 배열 형식
  138. * @return int 마지막으로 증가한 ID를 반환합니다.
  139. * @example $column_name=array('pwd','ip','name')
  140. $ column_value=array('1246','11.11.11.11','장산')
  141. echo easy_insert('user',$column_name,$column_value);*/
  142. function easy_insert($tablename,$column_name,$column_value) {
  143. try {
  144. $db= getConn();
  145. $sql='INSERT INTO ';//SQL 문 초기화
  146. $sql.=$tablename.' (';//테이블 이름 접합
  147. foreach($column_name as $col_name) {
  148. //SQL 문에 열 이름을 동적으로 추가합니다.
  149. if($col_name==end($column_name))
  150. {
  151. $sql.=$col_name." )" ;//다음에 속한다면 오른쪽 대괄호를 붙여주세요
  152. }else {
  153. $sql.=$col_name.", ";//열 이름을 쉼표로 붙여주세요
  154. }
  155. }
  156. $sql.=' VALUES ( ';//$condition_value 문 접합
  157. for ($i=0; $i < count($column_name); $i ) {//물음표 접합?
  158. if ($i==count($column_name) )-1) {
  159. $sql.='?) ;'
  160. }else {
  161. $sql.='?,'; }
  162. }
  163. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//pdo 객체를 생성하고 데이터베이스 매개변수 정보를 전달
  164. $db->setAttribute(PDO::ATTR_ERRMODE, PDO: :ERRMODE_EXCEPTION);//데이터베이스 오류 정보 설정
  165. $db->query('set names utf8;');//인코딩을 utf8로 설정
  166. $stmt = $db->prepare($sql) ;
  167. for ($i=1; $ i <= count($column_name); $i ) {//물음표 연결
  168. $stmt->bindParam($i, $column_value[$i -1]);
  169. / / 쿼리
  170. //echo $sql
  171. $stmt->setFetchMode(PDO::FETCH_ASSOC);//필드를 통해 데이터를 가져오도록 설정
  172. $stmt->execute(); / / 데이터 가져오기
  173. return $db->lastInsertId()
  174. } catch(PDOException $e) {
  175. return false; echo '데이터 처리 오류입니다. 웹사이트 관리자에게 문의하세요!'
  176. print_r($e);//매우 자세한 오류 메시지입니다.
  177. }
  178. }
  179. /**
  180. * @author shuimugan
  181. * @version 0.2
  182. * @param String $tablename 테이블 이름, 유형은 문자열
  183. * @param Array $column_name 열 이름, 배열 형식이 필요합니다
  184. * @ param Array $column_value는 배열 형식이 필요한 데이터에 해당합니다.
  185. * @param String $condition은 'where id=?'와 같은 where 문 문자열에 해당합니다.
  186. * @param Array $condition_value는 데이터 유형은 배열이어야 합니다.
  187. * @return int 영향을 받은 데이터 행의 수를 반환합니다.
  188. * @example $column_name=array('pwd','ip','name') ;
  189. $column_value=array( '123456','127.152.123.132','장산')
  190. $condition_value=array('1')
  191. easy_update('user',$column_name, $column_value,'ID=?',$condition_value,null)
  192. */
  193. function easy_update( $tablename,$column_name,$column_value,$condition,$condition_value,$limit) {
  194. try {
  195. $db=getConn()
  196. $sql='UPDATE';//SQL문 초기화
  197. $sql.=$tablename.' SET ';//테이블명 접합
  198. foreach ($column_name as $col_name) {
  199. //동적으로 SQL 문에 열 이름 추가
  200. if($col_name= =end($column_name))
  201. {
  202. $sql.=$col_name." = ? ";//마지막에 속하는 경우
  203. }else {
  204. $sql.=$col_name." = ?, ";//열 이름 쉼표 접합
  205. }
  206. }
  207. $sql.=$condition;//조건문 접합
  208. if(strlen($limit)>0){
  209. $sql.=$limit;//접속 제한문
  210. }
  211. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);/ /pdo 객체 생성 및 데이터베이스 매개변수 정보 전달
  212. $db- >setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//데이터베이스 오류 정보 설정
  213. $db->query('이름 설정 utf8;');//인코딩을 utf8로 설정
  214. $stmt = $db->prepare($sql);//문 준비
  215. $i=1
  216. $total=count($column_name; ) count($condition_value);
  217. for (;$i < ;= count($column_name);) {
  218. $stmt->bindParam($i, $column_value[$i-1]);/ /컬럼 이름에 해당하는 데이터 매개변수 바인딩
  219. $i;
  220. }
  221. $j=1
  222. for (;$i <= $total;) {
  223. $stmt- >bindParam($i, $condition_value[$j-1]);/ /데이터 매개변수에 해당하는 바인딩 조건
  224. $i
  225. $j;
  226. //Query
  227. $stmt->setFetchMode(PDO::FETCH_ASSOC);//필드를 통해 데이터를 가져오도록 설정
  228. $stmt->execute()
  229. //데이터 가져오기
  230. return $stmt->rowCount();
  231. } catch (PDOException $e) {
  232. return false
  233. echo '데이터 처리 오류입니다. 웹사이트 관리자에게 문의하세요!'; ( $e);//매우 상세한 오류 메시지, 온라인에 접속한 후 이 문장을 댓글로 달아야 합니다!
  234. /**
  235. * @author shuimugan
  236. * @version 0.2
  237. * @param String $tablename 테이블 이름
  238. * @param String $condition 조건(예: 'where id= ?') * @param Array $ Condition_value 조건에 해당하는 값은? 해당 값
  239. * @param String $limit 'limit 0,1'과 같은 제한 문
  240. * @return int 영향을 받은 결과 수를 반환합니다
  241. * @ 예 $condition_value=array( '83'); echo easy_delete('user', 'where id=?', $condition_value, null);*/
  242. function easy_delete($tablename,$ 조건 ,$condition_value,$limit) {
  243. try {
  244. $db=getConn();
  245. $sql='DELETE FROM ';//SQL 문 초기화
  246. $sql.=$tablename. ' ';//스플라이싱 테이블 이름
  247. $sql.=$condition;//스플라이싱 조건문
  248. if(strlen($limit)>0){
  249. $sql.=$limit;// 접합 제한문
  250. }
  251. $db = new PDO(DSN, DB_USERNAME, DB_USERPWD);//pdo 객체를 생성하고 데이터베이스 매개변수 정보를 전달합니다
  252. $db->setAttribute(PDO::ATTR_ERRMODE , PDO: :ERRMODE_EXCEPTION);//데이터베이스 오류 정보 설정
  253. $db->query('set names utf8;');//인코딩을 utf8로 설정
  254. $stmt = $db->prepare( $sql) ;//준비된 문장
  255. for ($i=1;$i <= count($condition_value);) {
  256. $stmt->bindParam($i, $condition_value[$i- 1]) ;//바인딩 조건에 해당하는 데이터 매개변수
  257. $i
  258. }
  259. // Query
  260. $stmt->setFetchMode(PDO::FETCH_ASSOC);//데이터를 얻기 위해 설정 필드를 통해
  261. $stmt->execute();
  262. // 데이터 가져오기
  263. return $stmt->rowCount()
  264. } catch(PDOException $e) {
  265. return false ;
  266. echo '데이터 처리 오류입니다. 웹사이트 관리자에게 문의하세요!'
  267. print_r($e);//매우 상세한 오류 메시지입니다.

  268. }
  269. ?>

  270. 코드 복사
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.