数据库插入失败时向用户显示错误消息

时间:2018-09-25 作者:ellen

当数据库查询在我的网站上失败时,我想向用户显示一条通用错误消息。我是wordpress的新手,不知道该怎么做。我的函数中有以下函数。当用户提交表单时调用的php:

function mytheme_insert_new_team() {

      $name  = $_POST[\'team_name\'];
      $type  = $_POST[\'team_type\'];
      global $wpdb;
      $table_name = "teams";
      $response = $wpdb->insert($table_name, array(
                                \'team_name\' => $name,
                                \'team_type\' => $type
                                ),array(
                                \'%s\',
                                \'%s\'));
            if(!$response){
                //an error has occured
            }else{
                //success, redirect user to the next step.
                mytheme_redirect_invite_others($name);
            }
}
我想回应一下"<p class=\'error\'>An error occured.</p>" 但它没有起作用。我也尝试过使用$errors global,但我似乎也无法做到这一点。我想将错误发送回表单所在的页面,并将其显示在表单上方。我该怎么做?

如果需要,很乐意提供更多信息。

提前感谢您的帮助!

1 个回复
SO网友:Breus

您不应该使用$errors 在全球范围内,但在WordPress开发中使用挂钩。由于您是WP开发的新手,我将简要解释它是如何工作的。

您应该做什么:

创建一个新的钩子,或使用一个现有的钩子,该钩子位于希望此错误出现在模板文件中的位置mytheme_insert_new_team 此挂钩的函数add_action 函数可在此处找到其语法:https://code.tutsplus.com/tutorials/adding-custom-hooks-in-wordpress-custom-actions--cms-26454

在该页的以下部分中,也可以找到关于其具体工作原理的良好解释:Understanding WordPress Actions 然后是小节:Defining Custom Actions.

以下是我从该特定网页借用的相应代码:

<?php

/**
 * Define the action and give functionality to the action.
 */
 function tutsplus_action() {
   do_action( \'tutsplus_action\' );
 }

 /**
  * Register the action with WordPress.
  */
add_action( \'tutsplus_action\', \'tutsplus_action_example\' );
function tutsplus_action_example() {
  echo \'This is a custom action hook.\';
}
现在,您已经定义了操作(挂钩),并使用代码的第二部分将功能注册到此挂钩。

接下来,您要在正确的位置调用此挂钩,如下所示:

tutsplus_action()

结束

相关推荐

Wpdb->prefix和table_prefix有什么不同

wpdb->prefix和table\\u prefix之间有什么不同我想安装pluginfor示例的db table$wps_user_visits_table_prefix = $wpdb->prefix.\'wps_user_visits\'; 等于$wps_user_visits_table_prefix = $table_prefix.\'wps_user_visits\'; 还是不同?