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

wordpress中的函数问题?

发布网友 发布时间: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

这个东西应该是在一个class里面,$this表示这个类本身,escape_by_ref表示类里面的方法,就是函数了wordpress里面比较常见这样的使用,去看官方文档关于callback的介绍吧

array( $this, 'escape_by_ref' )实际上是返回$this类里面的escape_by_ref方法追问官方文档关于callback,怎么找。找不到,求链接

追答搜Callback 回调类型

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 中国的黄金矿石最高有几克? 为什么网购华为荣耀20S新手机不配置耳机? 现在水泥彩砖种类这么多,怎么才能买到质量比较好的呢? 建筑服务彩砖怎样在记帐凭证上做? 入中国海关最多可以带多少克的黄金? 彩砖塑料模具的做法 彩砖人行道位置窨井盖一圈怎样处理是标准做法?彩砖围圆还是如图这样处理?_百度问一问 请为下面两个成语对上与它结构相同、意义相近、相反或相对的另一成语。 成语对对子 固若金汤= 指鹿为马= 流芳百世= 兵荒马乱 = 伶牙俐齿= 志同道合= 精雕细刻= 横七竖八= 征途任务彩砖怎么做 相近意思的成语带解释 塑料模具做彩砖的脱模剂的配方? 依照对仗原则为下列词语对上与该词语意义相近或相反的成语。(六个词语中选择四个)(4分)1)兵荒马乱— 砖机怎样做彩砖? 怎么能彩砖雪捂不掉色 依照对仗原则为下列词语对上与该词语结构相同意义相近或相反的成语 与乱七八糟意思相近的成语 描写兵荒马乱的成语? 市政铺彩砖预算怎么做 1、写出“兵”的不同意义和2、下列成语意思相近的成语 怎样可以知道老师在钉钉里发句型练的答案? 如何查看老师布置的作业? 钉钉网里家校本里老师出的题怎么查看错题? 黑豆煮熟吃有什么好处 《史记·廉颇与蔺相如》原文 吃黑豆祛湿,直接生吃好还是熟吃好? 廉颇和蔺相如的故事 要100字 黑豆就是这样煮熟直接吃就行吗 黑豆炒的吃好还是煮的吃好 廉颇与蔺相如的故事简述 请问黑豆可以直接清水煮熟吃吗 黑豆用水煮熟可以直接食用吗?煮豆汤能喝吗 黑豆直接煮熟吃可以吗 史记里面有关蔺相如或廉颇的典故,要三个啊,一个人三个,作业 廉颇和蔺相如的故事还有哪些 黑豆炒熟吃好不好呀 数学分析的题目? 蔺相如或廉颇的故事 吃熟黑豆对身体有何好处 史记《廉颇与蔺相如列传》的主要内容和阅读启发