• 本站搬迁至Linode机房,购买Linode 1G机型仅需$10/月,点此访问官网
  • 百度口碑求好评,http://koubei.baidu.com/s/www.zhiyanblog.com
  •    1年前 (2015-01-03)  WordPress |   16 条评论  274 
    文章评分 1 次,平均分 4.0
    [收起] 文章目录

    WordPress插件开发或者主题高级功能定制过程中,常常需要新建数据表以操作数据库并与WP默认的表区分开来,那么需要用到dbDeltamaybe_create_table这两种函数。它们之间有一定的区别,现比较如下:

    1.用法对比

    dbDelta($queries,$execute = true)

    参数:

    $queries

    为SQL查询语句

    $execute

     

    使用dbDelta创建数据表最好先判断是否存在该表

    示例:

    global $wpdb;     $table_name = $wpdb->prefix . 'tin_meta';        if( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name ) :    		$sql = " CREATE TABLE `$table_name` ( 			`meta_id` int NOT NULL AUTO_INCREMENT,  			PRIMARY KEY(meta_id), 			`user_id` int, 			`meta_key` tinytext, 			`meta_value` longtext 		) ENGINE = MyISAM CHARSET=utf8;"; 			require_once(ABSPATH . 'wp-admin/includes/upgrade.php');    			dbDelta($sql);        endif;

    maybe_create_table( string $table_name, string $create_ddl)

    参数:

    $table_name

    要创建的数据表名

    $create_ddl

    SQL语句.

    示例:

    global $wpdb; 		include_once(ABSPATH.'/wp-admin/upgrade-functions.php'); 		include_once(ABSPATH.'/wp-admin/includes/upgrade.php'); 		$prefix = $wpdb->prefix; 		$tpay_download = $prefix.'tpay_download'; 		$create_tpay_download_sql = "CREATE TABLE $tpay_download (tpay_id int(11) NOT NULL auto_increment,tpay_num int(11) NOT NULL,tpay_title varchar(100) NOT NULL,tpay_post int(11) NOT NULL,tpay_price double(10,2) NOT NULL,tpay_url varchar(32) NOT NULL,tpay_user_id int(11) NOT NULL,tpay_time datetime NOT NULL,tpay_data text NOT NULL ,tpay_success int(11) NOT NULL,tpay_author int(11) NOT NULL,PRIMARY KEY (tpay_id)) $table_charset;"; 		maybe_create_table($tpay_download,$create_tpay_download_sql); 

    使用maybe_create_table会判断数据表是否存在,存在则不创建数据表

    2.功用对比

    dbDelta提供数据表功能性升级支持,特别是你的主题或插件升级,需要修改数据表结构,那么dbDelta是最好的方法,如果使用maybe_create_table,则有可能无法正确升级。所以如果你创建的数据表在未来版本可能会随着功能增多需要调整结构,那么dbDelta无疑是最好的方法。

     

    除特别注明外,本站所有文章均为知言的自留地原创,转载请注明出处来自http://www.zhiyanblog.com/dbdelta-vs-maybe_create_table.html

    关于
    知言博客是由WordPress业余爱好者zhiyan建立的WordPress以及WEB资源站,集WordPress教程、主题、插件以及众多前端素材、代码等其他内容于一体,努力为相关用户提供帮助。

    发表评论

    表情 格式

    1. 太好了,正需要!

      kuiliu 2个月前 (01-17) [0] [0]
    2. 知言大哥!你真的太细心了!给你点个赞!

      qazwsx 2个月前 (01-14) [0] [0]
    3. 主题堪称完美,33个赞

      qazwsx 2个月前 (01-12) [0] [0]
    4. 主题堪称完美,32个赞

      yutaok 3个月前 (12-03) [0] [0]
    5. 牛逼大师

      qhy 4个月前 (11-01) [0] [0]
    6. 好东西

      z_devil 5个月前 (10-15) [0] [0]
    7. worilegegou啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

      曹大爷 7个月前 (08-15) [0] [0]
    8. 不错

      书~香飘飘 7个月前 (08-15) [0] [0]
    9. 好东西

      Tiger 8个月前 (07-27) [0] [0]
    10. 已读,很有帮助

      独醉寒风 10个月前 (05-28) [0] [0]
    11. 赚点积分。

      LveQuan_i7h 10个月前 (05-03) [0] [1]
    12. 努力赚积分~

      大庆奈特丽婚纱 11个月前 (04-12) [0] [0]
    13. 讚喔^^

      jlliu0226 12个月前 (03-22) [0] [0]
    14. 受教 了

      aisino.ou 1年前 (2015-02-16) [0] [0]
    15. 很不错,学习了!

      奋斗 1年前 (2015-02-11) [0] [0]
    16. 还不太懂,慢慢学~~

      tslgq 1年前 (2015-01-18) [0] [0]
    切换注册

    登录

    忘记密码 ?

    您也可以使用第三方帐号快捷登录

    切换登录

    注册