当前位置:Gxlcms > 数据库问题 > WordPress数据库操作函数详解

WordPress数据库操作函数详解

时间:2021-07-01 10:21:17 帮助过:4人阅读

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

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

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

如果出错,则返回FALSE。

实例:

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

2、function escape($data)

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

实例:

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

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

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

实例:

  1. <p><?<span style="width: auto; height: auto; float: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">php</span></span><br>$wpdb->insert( <br>    ‘table‘, <br>    array( <br>        ‘column1‘ => ‘value1‘, <br>        ‘column2‘ => 123 <br>    ), <br>    array( <br>        ‘%s‘, <br>        ‘%d‘ <br>    ) <br>);<br>?></p>

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

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

实例:

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

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

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

实例:

  1. <p><?<span style="width: auto; height: auto; float: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">php</span></span><br>$user_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->users;" ) );<br>echo "<p>User count is {$user_count}</p>";<br>?></p>

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

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

实例:

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

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

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

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

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

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

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

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

实例:

  1. <p><?<span style="width: auto; height: auto; float: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">php</span></span><br>$names = $wpdb->get_col("SELECT name, email FROM myusers", 0)<br>foreach ( $names as $name ) {<br>    echo $name;<br>}<br>?></p>

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

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

实例:

  1. <p><?php<br>$fivesdrafts = $wpdb->get_results( <br>    "<br>    SELECT ID, post_title <br>    FROM $wpdb->posts<br>    WHERE post_status = ‘draft‘ <br>        AND post_author = 5<br>    "<br>);<br><br>foreach ( $fivesdrafts as $fivesdraft ) <br>{<br>    echo $fivesdraft->post_title;<br>}<br>?></p>

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

返回字段信息。

实例:

  1. <p><?php<br>$col_name = $wpdb->get_col_info(‘name‘, 0);<br>echo $col_name;<br>?></p>

10、function prepare($query = null)

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

用法:

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

实例:

  1. <p><?<span style="width: auto; height: auto; float: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">php</span></span><br>$metakey    = "Harriet‘s Adages";<br>$metavalue  = "WordPress‘ <span style="width: auto; height: auto; float: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">data</span></span>base interface is like Sunday Morning: Easy.";<br><br>$wpdb->query( $wpdb->prepare( <br>    "<br>        INSERT INTO $wpdb->postmeta<br>        ( post_id, meta_key, meta_value )<br>        VALUES ( %d, %s, %s )<br>    ", <br>    10, <br>    $metakey, <br>    $metavalue <br>) );<br>?></p>

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


WordPress数据库操作函数详解

标签:

人气教程排行