워드프레스 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/
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

