>  기사  >  백엔드 개발  >  WordPress 데이터베이스 작업에 사용되는 함수입니다.

WordPress 데이터베이스 작업에 사용되는 함수입니다.

WBOY
WBOY원래의
2016-08-08 09:23:321099검색



워드프레스 사용시, WP에 캡슐화된 데이터베이스 연산 클래스(wp-db.php)를 직접 사용하고 싶다면, 사용하는 코드에 wp-blog-header.php를 포함시키면 됩니다.

define(‘PATH’, dirname(dirname(__FILE__)).‘/’);  
require_once(PATH . ‘../wp-blog-header.php’);  
global $wpdb; 

데이터를 삽입할 때 wp-db 클래스의 insert() 함수를 사용하는 방법도 있습니다.

$table = "test_table";
$data_array = array(
‘column_1′ => ‘data1′,
‘column_2′ => ‘data2′
);
$wpdb->insert($table,$data_array);

첫 번째 매개변수는 데이터베이스 테이블의 이름이고, 두 번째 매개변수는 삽입할 데이터인 배열입니다. 배열의 키 이름은 테이블의 열 이름입니다. 실제로 insert() 함수에는 세 번째 매개변수 형식도 있습니다. 관심 있는 친구들은 wp-db.php의 메소드 정의에서 데이터를 업데이트할 때 update() 함수를 사용할 수 있음을 볼 수 있습니다. 예:

$table = "test_table";
$data_array = array(
 ‘column_1′ => ‘new_data1′
);
$where_clause = array(
‘column_2′ => ‘data2′
);
$wpdb->update($table,$data_array,$where_clause);

데이터베이스에서 데이터를 가져오는 방법은 여러 가지가 있으며 그 중 하나는 다음과 같습니다.

$querystr = "SELECT column_1 FROM test_table";
$results = $wpdb->get_results($querystr);
$i=0;
while ($i< count($results)){
echo $results[$i]->column_1."<br />";
$i++;
}

PHP 구문 쿼리

<strong><?php $wpdb->query("DELETE FROM $wpdb->post WHERE post_id = ’13′ “); ?> </strong>

매개변수 쿼리는 mysql 문입니다. 반환 값은 선택되고 영향을 받은 행 수입니다. 오류가 발생하면 FALSE를 반환합니다.

변수를 선택하세요.

<strong><?php $wpdb->get_var('query',column_offset,row_offset); ?> </strong>


여기서 query는 쿼리할 mysql 문입니다. 비어 있으면 캐시에서 선택한다는 의미입니다. column_Offset과 row_offet은 쿼리 반환값의 열과 행을 나타내며, 기본값은 0이다. 일반적인 사용법은 다음과 같습니다.

<?php $user_count = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $wpdb->users;"));?>

이 SQL은 하나의 값만 선택하며 기본값은 행 0개와 열 0개입니다. 이는 사용자 수가 선택된다는 의미입니다. 왜 prepare가 항상 여기 앞에 추가되는지는 확실하지 않습니다.

행 선택

<strong><?php $wpdb->get_row('query', output_type, row_offset); ?> </strong>

query는 실행할 mysql 문이고, output_type은 반환 값이 객체인지, 해시인지 또는 배열인지를 나타냅니다. row_offset은 행을 나타냅니다. .

기본적으로 output_type은 객체입니다.

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");
echo $mylink->link_id // 인쇄 "10"

output_type=ARRAY_A인 경우:

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10", ARRAY_A);
echo $mylink['link_id']; // prints "10"

열 선택

get_col('query',column_offset) ? >

일반 선택

//$wpdb->get_results('query', output_type);

<?php
$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;
}

행 삽입

<strong>//<?php $wpdb->insert( $table, $data, $format ); ?>
<?php $wpdb->insert('table', array('column1' => 'value1', 'column2' => 123 ), array('%s','%d') ) ?></strong>


업데이트

//$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
<?php $wpdb->update( 'table', array( 'column1' => 'value1', 'column2' => 'value2' ), array( 'ID' => 1 ), array( '%s', '%d' ), array( '%d' ) ) ?>

wpdb prepare에 대하여
앞서 언급했듯이 각 mysql 문이 prepare에 포함되는 이유는 명확하지 않습니다. 설명은 다음과 같습니다. mysql 문을 전송하면 작은따옴표, 큰따옴표 등의 문자가 포함될 수 있기 때문입니다. mysql에 처리하지 않고 직접 오류가 발생할 수 있습니다. 그래서 여기에서는 준비를 사용하여 mysql 문을 전처리합니다. prepare 구문은 다음과 같습니다.

$sql = $wpdb->prepare( 'query' [, value_parameter, value_parameter ... ] );

쿼리에는 각각 다음 매개변수의 유형이 정수임을 나타내는 %d, %S 및 %f가 포함될 수 있습니다. , 문자 및 부동 소수점. % 기호를 표시하려면 %%를 사용하십시오. 구문은 기본적으로 C 언어의 printf와 동일합니다.
기본적으로는 그렇습니다. 일반 데이터베이스 처리에는 문제가 없어야 합니다. 문제가 발생하면 이 글의 시작 부분에 언급된 글에서 확인하실 수 있습니다.

$wpdb는 여러 데이터베이스 쿼리 기능을 포함하는 전역 변수입니다:

$wpdb -> get_results('query');
$wpdb->query('query');
$wpdb->get_var('query',column_offset,row_offset);
$wpdb->get_row('query', output_type, row_offset);
$wpdb->get_col('query',column_offset);
$wpdb->get_results('query', output_type);
$wpdb->insert( $table, $data, $format );
$wpdb->update( $table, $data, $where, $format = null, $where_format = null );
$wpdb->prepare( 'query' [, value_parameter, value_parameter ... ] );
$wpdb->show_errors();
$wpdb->hide_errors();
$wpdb->print_error();
$wpdb->get_col_info('type', offset);
$wpdb->flush(); 

자세히: http://codex.wordpress org/zh. -cn:Class_Reference/wpdb




위는 WordPress 데이터베이스 작업에 사용되는 기능을 소개합니다. , 관련 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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