【发布时间】:2015-06-24 08:33:15
【问题描述】:
我正在开发一个 Wordpress 网站,该网站将处理用户注册、朋友、团队和足球锦标赛括号。
在这个网站上,我有 wordpress 核心数据库和一些我自己制作的自定义非 wordpress 表。
我想使用 Wordpress 全局 $wpdb 变量在我的自定义表上发出 CRUD 请求。
问题:
当多个用户同时使用 $wpdb 变量时,我会遇到并发问题吗?
例子:
有 10 个用户在线,每个用户都对 sql_tournament 表进行 INSERT 调用。 $wpdb 上的 INSERT 命令在成功执行后会填充 $wpdb->insert_id 变量。每个用户的 INSERT 请求会为每个人(又名全局)更改 $wpdb->insert_id 变量,还是每个人都有一个单独的 $wpdb 实例,使其使用安全,因为我可以安全地假设在检索 $wpdb->insert_id 时变量,我会得到同一个Session插入的表的ID。
代码示例:
function team_add( $name, $team_website = '', $team_logo_url = '' )
{
global $wpdb;
$return = $wpdb->insert( DB_TEAM,
array(
'name' => $name,
'team_website' => $team_website,
'team_logo_url' => $team_logo_url
),
array(
'%s',
'%s',
'%s'
)
);
if ( $return === false ) {
throw new Exception( "Could not add team.." );
}
return $wpdb->insert_id;
}
【问题讨论】: