워드프레스 DB 쿼리 사용법 총정리
2017.02.25 09:57
워드프레스 DB 쿼리 사용법 총정리
042월
데이터베이스에서 원하는 데이터를 다루기 위해서 쿼리를 사용한다. $wpdb에서 이를 지원하는 다양한 메소드를 제공한다. 주로 데이터의 조회(Select), 등록(Insert), 갱신(Update), 삭제(Delete) 작업이 그것이다. 메소드 사용법을 알아보자.
[$wpdb DB 메소드]
- 단일 행, 단일 열의 값을 가져올 때 : get_var()
- 단일 행, 다중 열의 값을 가져올 때 : get_row()
- 다중 행, 다중 열의 값을 가져올 때 : get_results()
- 데이터의 등록 : insert()
- 데이터의 갱신 : update()
- 데이터의 등록/갱신/삭제 : query()
1. 단일 행, 단일 열의 값을 가져올 때 : get_var()
- 반환되는 레코드의 카운트나 합계 등 단일 값을 가져올 때 사용한다.
<?php $user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->users" ); echo "<p>User count is {$user_count}</p>"; ?>
2. 단일 행, 다중 열의 값을 가져올 때 : get_row()
- 하나의 레코드만 반환되는 경우 사용하며, 세 가지 형태로 결과값을 이용할 수 있다.
(1) 오브젝트 필드명으로 가져오기
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10"); echo $mylink->link_id; // prints "10"
(2) 연관 배열로 가져오기(필드명)
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A); echo $mylink['link_id']; // prints "10"
(3) 수치 배열로 가져오기(인덱스 번호)
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_N); echo $mylink[1]; // prints "10"
3. 다중 행, 다중 열의 값을 가져올 때 : get_results()
- 일반적으로 가장 많이 사용될 쿼리이다. 다중 행과 다중 열을 루프를 이용해 가져와서 사용한다.
$fivesdrafts = $wpdb->get_results( " SELECT ID, post_title FROM $wpdb->posts WHERE post_status = 'draft' AND post_author = 5 " ); foreach ( $fivesdrafts as $fivesdraft ) { echo $fivesdraft->post_title; }
4. 데이터의 등록 : insert()
- insert 문을 직접 작성하지 않고 테이블명, 칼럼 변수/값을 직접 지정한다. 내부적으로 prepare 함수를 호출한다.
$wpdb->insert( 'table', array( 'column1' => 'value1', 'column2' => 123 ), array( '%s', '%d' ) );
5. 데이터의 갱신 : update()
- update 문을 직접 작성하지 않고 테이블명, 칼럼 변수/값을 직접 지정한다. 내부적으로 prepare 함수를 호출한다.
$wpdb->update( 'table', array( 'column1' => 'value1', // string 'column2' => 'value2' // integer (number) ), array( 'ID' => 1 ), array( '%s', // value1 '%d' // value2 ), array( '%d' ) );
6. 데이터의 등록/갱신/삭제 : query()
- 모든 실행쿼리를 실행할 수 있다. 주로 Insert, Update, Delete에 사용된다.
$metakey = "Harriet's Adages"; $metavalue = "WordPress' database interface is like Sunday Morning: Easy."; $wpdb->query( $wpdb->prepare( " INSERT INTO $wpdb->postmeta ( post_id, meta_key, meta_value ) VALUES ( %d, %s, %s ) ", 10, $metakey, $metavalue ) );
[출처] https://guspark.wordpress.com/2013/02/04/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-db-%EC%BF%BC%EB%A6%AC-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%B4%9D%EC%A0%95%EB%A6%AC/
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.