日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

WordPress 查询数据库 操作数据库

發(fā)布時間:2023/12/9 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WordPress 查询数据库 操作数据库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

https://www.168seo.cn/jianzhan/wordpress/advance-wordpress-tutorial/24692.html

?

插件位置

需要注意的是,由于在WordPress中可以配置wp-content/plugins/目錄的位置,所以你必須使用plugin_dir_path()和plugins_url()兩個函數(shù)來獲取插件的路徑。

WordPress 查詢數(shù)據(jù)庫

查詢

?

Python

?

1

2

3

4

5

6

7

8

global $wpdb;

$fivesdrafts = $wpdb->get_results("SELECT ID, post_title FROM $wpdb->posts

????WHERE post_status = 'publish' AND post_author = 1");

foreach ($fivesdrafts as $fivesdraft) {

????echo $fivesdraft->ID."??".$fivesdraft->post_title."<br>";

}

die();

?

?

輸出:

WordPress是一個非常強大的內(nèi)容管理系統(tǒng),非常適合搭建CMS網(wǎng)站,也非常適合二次開發(fā)。

本文就為大家介紹一下,在二次開發(fā)中非常重要的一個環(huán)節(jié)–數(shù)據(jù)庫操作。

wpdb類

為了方便二次開發(fā),WordPress封裝了一個非常友好的數(shù)據(jù)庫操作類:wpdb。

wpdb類封裝了所有的數(shù)據(jù)庫操作函數(shù),它是基于開源的數(shù)據(jù)庫操作類ezSQL進行修改的,使其更適合于WordPress,也使其僅適用于mySQL數(shù)據(jù)庫。

同時,WordPress還提供了一個全局變量$wpdb,并將其實例化為wpdb類的對象。

這樣我們就可以直接使用$wpdb來調(diào)用所有的數(shù)據(jù)庫操作函數(shù)。

注意 使用前 一定要?global $wpdb;

query函數(shù)

這個函數(shù)是最基本的操作函數(shù),$query為SQL語句,提交給數(shù)據(jù)庫執(zhí)行,結(jié)果分兩種情況:

1). 如果是insert|delete|update|replace, 返回受影響行數(shù),在insert|replace這種情況下,該函數(shù)會用$this->insert_id記錄下新插入的ID。

2). 如果是“select”,該會用$this->last_result記錄下查詢到結(jié)果集,返回查詢到的記錄行數(shù)。

如果出錯,則返回FALSE。

實例:

?

Python

?

1

2

3

4

5

6

7

8

9

10

<?php

$wpdb->query(

????"

????UPDATE $wpdb->posts

????SET post_parent = 7

????WHERE ID = 15 AND post_status = 'static'

????"

);

?>

?

?

escape函數(shù)

使用反斜線引用數(shù)據(jù),也就是使用魔術(shù)引號。

實例:

?

Python

?

1

2

3

4

5

6

<?php

$name = $wpdb->escape($name);

$email = $wpdb->escape($email);

$wpdb->query("INSERT INTO myusers (id, name, email) VALUES (NULL, '$name', '$email')");

?>

?

?

insert函數(shù)

這是插入記錄函數(shù),第一個參數(shù)是表的字段數(shù)組,第二個是數(shù)據(jù)數(shù)組,第三個用于規(guī)定$data中每個值的數(shù)據(jù)類型。插入數(shù)據(jù)返回1,否則為0。

示例:

?

Python

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?

$wpdb->insert(

????'table',

????array(

????????'column1' => 'value1',

????????'column2' => 123

????),

????array(

????????'%s',

????????'%d'

????)

);

?>

?

?

update函數(shù)

這是更新記錄函數(shù),第一個參數(shù)是表的字段數(shù)組,第二個是數(shù)據(jù)數(shù)組,第三個是條件數(shù)組,第四個和第五個分別用于規(guī)定$和$where中每個值的數(shù)據(jù)類型。更新了為1,否則為0。

實例:

?

Python

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

$wpdb->update(

????'table',

????array(

????????'column1' => 'value1',??// string

????????'column2' => 'value2'?? // integer (number)

????),

????array( 'ID' => 1 ),

????array(

????????'%s',?? // value1

????????'%d'????// value2

????),

????array( '%d' )

);

?>

?

?

get_var函數(shù)

這個只返回一個值,默認是第0行第0列。如果$query不為空,首先執(zhí)行查詢,如果$query為空的話,則表示從cache中選出;然后返回第X列第Y行的值。

實例:

?

Python

?

1

2

3

4

5

<?

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

echo "<p>User count is {$user_count}</p>";

?>

?

?

get_row函數(shù)

返回一行,$output指定返回的類型,可以是ARRAY_A(關(guān)聯(lián)數(shù)組)、ARRAY_N(數(shù)字數(shù)組)或者OBJECT(對象)。$y指定第幾行。

實例:

默認情況下,$output的值為OBJECT,那么用法如下:

?

Python

?

1

2

3

4

5

<?php

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

echo $mylink->link_id; // prints "10"

?>

?

?

如果$output的值為ARRAY_A,那么用法如下:

?

Python

?

1

2

3

4

5

<?php

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_A);

echo $mylink['link_id']; // prints "10"

?>

?

?

如果$output的值為ARRAY_N,那么用法如下:

?

Python

?

1

2

3

4

5

<?php

$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_N);

echo $mylink[1]; // prints "10"

?>

?

?

get_col函數(shù)

返回一列,$x指定第幾列。

實例:

?

Python

?

1

2

3

4

5

6

7

<?

$names = $wpdb->get_col("SELECT name, email FROM myusers", 0)

foreach ( $names as $name ) {

????echo $name;

}

?>

?

?

get_results函數(shù)

返回查詢的結(jié)果集,允許以ARRAY_A、ARRAY_N或者OBJECT三種方式返回。

?

Python

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?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;

}

?>

?

?

get_col_info函數(shù)

返回字段信息。

?

Python

?

1

2

3

4

5

<?php

$col_name = $wpdb->get_col_info('name', 0);

echo $col_name;

?>

?

?

prepare函數(shù)

這是一個可變參數(shù)函數(shù),即函數(shù)的參數(shù)個數(shù)不確定。$query為SQL語句,其中可以包含像%s和%d這樣的占位符,其它所有非占位符里面的%都要使用%%來代替。由于SQL語句中可能含有像單引號、雙引號這樣的特殊字符,如果不進行處理就直接提交給數(shù)據(jù)庫,可能會導(dǎo)致錯誤或者出現(xiàn)安全問題。為此,我們可以通過prepare函數(shù)來對SQL語句進行。其實該函數(shù)的用法非常簡單,就跟C語言中的sprintf()和vsprintf()差不多。

用法:

?

Python

?

1

2

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

?

?

實例:

?

Python

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?

$metakey????= "Harriet's Adages";

$metavalue??= "WordPress' base 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

) );

?>

?

?

其他

另外還有兩個常量:SAVEQUERIES和WP_DEBUG。設(shè)置SAVEQUERIES常量為TRUE,可以把在里執(zhí)行的所有查詢及其停止時間保存到$this->queries這個數(shù)組中,以后調(diào)試的時候可以使用;而設(shè)置WP_DEBUG常量為TRUE,則可以輸出錯誤。不過,這兩個常量開關(guān)默認都沒有打開,我們在測試的時候,可以在wp_config.php文件中將其開啟。

總結(jié)

以上是生活随笔為你收集整理的WordPress 查询数据库 操作数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。