怎样注册一个办一个小型食品加工厂厂

通过WordPress数据库操作类wpdb访问数据库-WordPress-网页制作-壹聚教程网通过WordPress数据库操作类wpdb访问数据库
文章给各位介绍通过WordPress数据库操作类wpdb访问数据库,有需要了解相关操作的朋友可进入参考哦。
为了方便访问mysql,wordpress提供了一个全局变量$wpdb,通过$wpdb变量可以访问数据库中的任何数据表,可以实现对数据库的各项操作,包括建表、查询、删除、更新等,但是访问仅限于一个数据库,要访问多个数据库,需要重新实例化一个wpdb类。
使用的时候请不要直接调用$wpdb类中的方法。WordPress定义了$wpdb的全局变量,所以直接调用该全局变量$wpdb的实例来操作数据库。调用之前全局化变量$wpdb:
&?php $wpdb-&query(&DELETE FROM $wpdb-&post WHERE post_id = '13' &); ?&
其中query的参数是任何mysql语句。返回值是有多少行被选出、影响。如果出错返回FALSE。
选出一个变量
&?php $wpdb-&get_var('query',column_offset,row_offset); ?&
其中query为要查询的mysql语句,如果为空的话,则表示从cache中选出。
column_Offset和row_offet表示制定query返回值的第几列和第几行,缺省值为零。
典型用法为:
&$user_count = $wpdb-&get_var($wpdb-&prepare(&SELECT COUNT(*) FROM $wpdb-&&));
&echo &&p&User count is & . $user_count . &&/p&&;
这个sql只选出一个值,缺省的0行0列,即表示选出用户数目。
$wpdb-&prepare是为了保护查询SQL注入攻击,另一种说法是&添加prepare的方式来确定没有用一个非法操作或任何非法字符来进行处理&
&?php $wpdb-&get_row('query', output_type, row_offset); ?&
query为要执行的mysql语句;output_type表示返回值是object,hash或者是数组;row_offset表示第几行。
缺省情况下output_type为object。
$mylink = $wpdb-&get_row(&SELECT * FROM $wpdb-&links WHERE link_id = 10&);
echo $mylink-&link_ // prints &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&
如果output_type=ARRAY_N,那么:
$mylink = $wpdb-&get_row(&SELECT * FROM $wpdb-&links WHERE link_id = 10&, ARRAY_N);
echo $mylink[1]; // prints &10&
&?php $wpdb-&get_col('query',column_offset); ?&
$wpdb-&get_results('query', output_type);
$fivesdrafts = $wpdb-&get_results(&SELECT ID, post_title FROM $wpdb-&posts
WHERE post_status = 'draft' AND post_author = 5&);
($fivesdrafts as $fivesdraft) {
&echo $fivesdraft-&post_
例子二:获取所有用户的邮箱
$wp_user_email = $wpdb-&get_col(&SELECT DISTINCT user_email FROM $wpdb-&users&);
foreach($wp_user_email as $a){
&echo $a.&&br /&&;
&?php $wpdb-&insert( $table, $data, $format ); ?&
$wpdb-&insert( 'table', array( 'column1' =& 'value1', 'column2' =& 123 ), array( '%s', '%d' ) )
$wpdb-&update( $table, $data, $where, $format = null, $where_format = null );
$wpdb-&update( 'table', array( 'column1' =& 'value1', 'column2' =& 'value2' ), array( 'ID' =& 1 ), array( '%s', '%d' ), array( '%d' ) )
读取多条记录:
使用get_results方法,Wpdb函数以数组形式返回整个查询结果。
&?php $wpdb-&get_results(&query&, output_type); ?&
query:(字符串)你希望执行的查询语句。将该参数设为null会使函数返回上一个查询的缓存结果中的信息。
output_type:三个预定义的常量之一。默认值为OBJECT。更多信息请见上文中的&选择表行&。
OBJECT && 以对象形式输出返回的结果
ARRAY_A &&以关联数组形式输出返回的结果
ARRAY_N && 以数值索引数组形式输出返回的结果
示例:先从数据表wp_posts获取文章ID和文章标题,然后用遍历数组输出所有文章标题
&$a = $wpdb-&get_results(&SELECT ID, post_title FROM $wpdb-&posts&);
&foreach ($a as $b) {
&&echo $b-&post_title.&&br /&&;
$wpdb-&posts 等同于 数据表前缀_posts,默认为wp_posts
例子:从数据中选取评论数量最多的十篇文章,作为热门文章
&$result = $wpdb-&get_results(&SELECT comment_count,ID,post_title FROM $wpdb-&posts WHERE 1 ORDER BY comment_count DESC LIMIT 0 , 10&);&
&foreach ($result as $topten) {&
&&$postid = $topten-&ID;&
&&$title = $topten-&post_&
&&$commentcount = $topten-&comment_&
&&if ($commentcount != 0) {
&&li&&a href=&&?php echo get_permalink($postid); ?&& title=&&?php echo $title ?&&&&?php echo $title ?&&/a&&/li&&
&?php } } ?&
利用$result = $wpdb-&get_results(& &)取得查询的结果集,实际上是一个多维数组,然后foreach循环读取每一行数据到$topten变量,最后用$topten-&post_title取得标题的值。括号中引号里面的是SQL查询语句。
关于wpdb prepare
前面提到不清楚为什么每个mysql语句都会包在prepare中,这里给出解释:因为mysql语句中可能含有单引号双引号这样的字符,如果不加 处理直接送给mysql,可能会导致错误。于是这里通过一个prepare来对mysql语句进行预处理。
prepare的语法是:
$sql = $wpdb-&prepare( 'query' [, value_parameter, value_parameter ... ] );
在query中可以包含%d,%S,%f,分别表示后面参数的类型是整数,字符和浮点,如果要显示%号,则用%%,语法和里面的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();
上一页: &&&&&下一页:相关内容自定义 WordPress 数据库错误页
自定义 WordPress 数据库错误页
自定义 WordPress 数据库错误页
文章目录[隐藏]
当你的 WordPress 站点出现数据库错误的时候,默认会看到这样的页面:
你也可以自定义错误页,首先在 “wp-content” 文件夹创建一个 db-error.php 文件,在里边放上这样的代码:
header( 'HTTP/1.1 503 Service Temporarily Unavailable' );
header( 'Status: 503 Service Temporarily Unavailable' );
header( 'Retry-After: 600' );
&!DOCTYPE HTML&
&meta charset=&UTF-8&&
&title&数据库错误&/title&
&h1 &&a name=&toc-1&&&/a&数据库错误&/h1&
&p&自定义数据库错误页&/p&
这样就可以自定义数据库错误页了。
&我爱水煮鱼,本站使用的主机是:,国外主机建议使用。
如有什么问题,请扫描下面二维码到小密圈咨询:
你可能也喜欢
& Copyright 2017
Icons by .
Powered by .
Hosting by .WordPress 教程:为插件自定义数据表
当你写插件的时候,你可能需要写东西到数据库中去,一般来说,有两种数据要存储,第一种是安装数据,一般存储在 wp_options 表中,使用 来实现。第二种是数据,可以存储到 postmeta 表或者 usermeta 表中。如果数据特别多,就需要单独创建数据表了。这篇文章就讲讲如何在写插件时候创建数据表。
一般在写插件时候创建数据库有如下三个步骤:
创建一个添加新数据表的 PHP 函数。
保证插件启动的时候调用这个函数。
如果新版本有不同的数据表结构,创建一个升级函数。
今天我就以的 新功能:自定义文本回复,来讲解下这个过程,其中的第三步,由于没有数据库的升级不涉及。
创建一个添加新数据表的 PHP 函数
我们这个插件的安装函数叫做:weixin_robot_texts_crate_table。
1. 数据库表前缀
默认 WordPress 数据库标签前缀都是 wp_,但是有人如果在一个数据库安装两个及以上 WordPress,就需要在 wp-config.php来区别,所以我们向 WordPress 数据库添加新表的时候,要先找找到数据库表前缀。我们可以在变量 $wpdb-&prefix 找到。代码如下:
global $$table_name = $wpdb-&prefix . "weixin_robot_texts";
2. 判断表是否存在
可以通过一条 SHOW TABLES SQL 查询来判断。
if($wpdb-&get_var("SHOW TABLES LIKE '$table_name'") != $table_name)
3. 创建数据表
这步就是实际来创建一个数据表了。我们这个表有5个字段,id 自定义文本回复的 ID。keyword 微信发送过来的关键字,reply 自定义回复,time 添加的时间,status是否启用,有时候只是不想暂时不想启用,而不是删除。
这里我不用直接的 SQL 查询来创建,而是使用在 wp-admin/upgrade-functions.php(我们需要加载该文件,默认是不会加载的)中的 dbDelta。dbDelta 函数会检查当前的表结构,和需要的表结构进行比较,所以无论添加或者修改表都会非常方便。关于具体怎样使用 dbDelta,详细可以看 wp-admin/upgrade-schema.php 中的例子。
$sql = "CREATE TABLE " . $tablename . " (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyword` varchar(255) CHARACTER SET utf8 NOT NULL,
`reply` text CHARACTER SET utf8 NOT NULL,
`status` int(1) NOT NULL DEFAULT '1',
`time` datetime NOT NULL DEFAULT ' 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=MyISAM
DEFAULT CHARSET=utf8;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
最后这个 weixin_robot_texts_crate_table 函数为:
function weixin_robot_texts_crate_table() {
$table_name = $wpdb-&prefix . "weixin_robot_texts";
if($wpdb-&get_var("show tables like '$table_name'") != $weixin_robot_texts_table)
$sql = "CREATE TABLE " . $table_name . " (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`keyword` varchar(255) CHARACTER SET utf8 NOT NULL,
`reply` text CHARACTER SET utf8 NOT NULL,
`status` int(1) NOT NULL DEFAULT '1',
`time` datetime NOT NULL DEFAULT ' 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `keyword` (`keyword`)
) ENGINE=MyISAM
DEFAULT CHARSET=utf8;
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
保证插件启动的时候调用创建数据表函数
我们使用 register_activation_hook 调用上面创建数据表的函数。
register_activation_hook( __FILE__,'weixin_robot_texts_crate_table');
看过本文的人还看过
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章

我要回帖

更多关于 个体食品加工厂手续 的文章

 

随机推荐