RSS

태그 보관물: 워드프레스 쿼리

워드프레스 DB 쿼리 사용법 총정리

데이터베이스에서 원하는 데이터를 다루기 위해서 쿼리를 사용한다. $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 
) );

 

 

Advertisements
 
 

태그: , ,