问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

wordpress 这个函数到底是干什么的apply_filters ()老是碰到他的

发布网友 发布时间:2022-04-07 19:53

我来回答

2个回答

懂视网 时间:2022-04-08 00:14

操作函数,$query为SQL语句,提交给数据库执行,结果分两种情况:

1). 如果是“insert|delete|update|replace”, 返回受影响行数,在“insert|replace”这种情况下,该函数会用$this->insert_id记录下新插入的ID。

2). 如果是“select”,该函数会用$this->last_result记录下查询到结果集,返回查询到的记录行数。

如果出错,则返回FALSE。

实例:

<?php
$wpdb->query(
    "
    UPDATE $wpdb->posts 
    SET post_parent = 7 
    WHERE ID = 15 AND post_status = ‘static‘
    "
);
?>

2、function escape($data)

使用反斜线引用数据,也就是使用魔术引号。

实例:

<?php
$name = $wpdb->escape($name);
$email = $wpdb->escape($email);
$wpdb->query("INSERT INTO myusers (id, name, email) VALUES (NULL, ‘$name‘, ‘$email‘)");
?>

3、function insert($table, $data, $format = null)

这是插入记录函数,第一个参数是表的字段数组,第二个是数据数组,第三个用于规定$data中每个值的数据类型。插入数据返回1,否则为0。

实例:

<?php
$wpdb->insert( 
    ‘table‘, 
    array( 
        ‘column1‘ => ‘value1‘, 
        ‘column2‘ => 123 
    ), 
    array( 
        ‘%s‘, 
        ‘%d‘ 
    ) 
);
?>

4、function update($table, $data, $where, $format = null, $where_format = null)

这是更新记录函数,第一个参数是表的字段数组,第二个是数据数组,第三个是条件数组,第四个和第五个分别用于规定$data和$where中每个值的数据类型。更新了为1,否则为0。

实例:

<?php
$wpdb->update( 
    ‘table‘, 
    array( 
        ‘column1‘ => ‘value1‘,  // string
        ‘column2‘ => ‘value2‘   // integer (number) 
    ), 
    array( ‘ID‘ => 1 ), 
    array( 
        ‘%s‘,   // value1
        ‘%d‘    // value2
    ), 
    array( ‘%d‘ ) 
);
?>

5、function get_var($query = null, $x = 0, $y = 0)

这个函数只返回一个值,默认是第0行第0列。如果$query不为空,首先执行查询,如果$query为空的话,则表示从cache中选出;然后返回第X列第Y行的值。

实例:

<?php
$user_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->users;" ) );
echo "<p>User count is {$user_count}</p>";
?>

6、function get_row($query = null, $output = OBJECT, $y = 0)

返回一行,$output指定返回的类型,可以是ARRAY_A(关联数组)、ARRAY_N(数字数组)或者OBJECT(对象)。$y指定第几行。

实例:

默认情况下,$output的值为OBJECT,那么用法如下:

<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10");
echo $mylink->link_id; // prints "10"
?>

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

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

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

<?php
$mylink = $wpdb->get_row("SELECT * FROM $wpdb->links WHERE link_id = 10",ARRAY_N);
echo $mylink[1]; // prints "10"
?>

7、function get_col($query = null, $x = 0)

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

实例:

<?php
$names = $wpdb->get_col("SELECT name, email FROM myusers", 0)
foreach ( $names as $name ) {
    echo $name;
}
?>

8、function get_results($query = null, $output = OBJECT)

返回查询的结果集,允许以ARRAY_A、ARRAY_N或者OBJECT三种方式返回。

实例:

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

9、function get_col_info($info_type = ‘name‘, $col_offset = -1)

返回字段信息。

实例:

<?php
$col_name = $wpdb->get_col_info(‘name‘, 0);
echo $col_name;
?>

10、function prepare($query = null)

这是一个可变参数函数,即函数的参数个数不确定。$query为SQL语句,其中可以包含像%s和%d这样的占位符,其它所有非占位符里面的%都要使用%%来代替。由于SQL语句中可能含有像单引号、双引号这样的特殊字符,如果不进行处理就直接提交给数据库,可能会导致错误或者出现安全问题。为此,我们可以通过prepare函数来对SQL语句进行预处理。其实该函数的用法非常简单,就跟C语言中的sprintf()和vsprintf()函数差不多。

用法:

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

实例:

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

当然,还有一些不常使用的函数,这里就不详细介绍了。另外还有两个常量:SAVEQUERIES和WP_DEBUG。设置SAVEQUERIES常量为TRUE,可以把在数据库里执行的所有查询及其停止时间保存到$this->queries这个数组中,以后调试的时候可以使用;而设置WP_DEBUG常量为TRUE,则可以输出错误。不过,这两个常量开关默认都没有打开,我们在测试的时候,可以在wp_config.php文件中将其开启。


WordPress数据库操作函数详解

标签:

热心网友 时间:2022-04-07 21:22

filter一般是对前台的模板函数进行操作的,比如the_title,the_content

在apply_filter之前必须要先进行add_filter('tag','func_name');将需要执行的函数添加到tag标签的数组中,
然后apply_filter就是执行tag相对应的这些函数~~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 如何将word 2010中的改写状态改为编辑状态 word中如何设置改写 玫瑰花瓣可以晒干吗? 苹果手机如何将照片文字转换成word文档- 问一问 在江里钓鱼要用什么杆钓鱼的好 江里如何钓鲤鱼 请问江里面怎么钓鱼? 江河如何钓鱼 长江里面怎么钓鱼 嬴政5级铭文怎么佩最强 宜兴农商行面试内幕严不严重? 宜兴农商行待遇怎么样? 农商银行APP有50000额度,不符合线上申请条件是什么意思? 农商银行收款在微信上属于什么线下门店支付吗? 公司户的车被保险人可以是个人吗 银行贷款线上办,但是实际是线下办的,银行违法了吗? 公司户可以买个人保险吗 公户车个人能买保险吗 金立手机怎么截屏。 金立s11s怎么截屏 别人用我的手机号。注册登录钉钉。会看见我手机的什么信息?隐私会被看到吗? 两个人用一个手机号登录钉钉,另一个人会看到另一个人的信息吗? 谁有在学校被老师罚脱鞋上课的经历?详细些。 股票中的走平台什么意思 一女子在去往单位的路上突然窜出来三个人将女子脚上的两只帆布鞋脱掉并拿走,女子只能穿着船袜去上班? 股票搭平台是什么意思 酸奶热量是多少? 《美腿志·射向帆布鞋》视频谁有??? 脚模瑶瑶的。完整的 在股市里 平台区是指什么意思 酸奶每100克的热量是多少?每天喝400克酸奶会长胖吗? 一个女生穿帆布鞋牛仔裤,我坐在地上休息,她走过来故意把脚伸到我的面前反复的颠了几下,代表什么意思? 一个女生穿帆布鞋牛仔裤,非常的可爱漂亮,她故意把脚伸到我的面前反复的颠了几下,代表什么意思? 一盒200g酸奶有多少热量 股票的专业语言&quot;在当前位置做平台&quot;是什么意思 股票看盘时说构筑平台是什么意思?怎么看? 酸奶热量怎么样?喝多了会长胖吗?和牛奶比呢? [求助]谁有那张图片:一男一女,都穿帆布鞋,女的脚踮起的(图片就到腿的部分,没身 偏航计数器的作用? 一杯酸奶的热量=两杯可乐? 什么是股票的大宗交易平台?