我正在开发一个Wordpress网站,该网站将处理用户注册,朋友,团队和足球比赛括号。
在这个网站上,我有自己的wordpress核心数据库和一些自定义的非wordpress表。
我想使用Wordpress全局$ wpdb变量在我的自定义表上发出CRUD请求。
问题:
当多个用户同时使用$ wpdb变量时,我是否会遇到并发问题?
示例:
网上有10个用户,每个用户都对sql_tournament表进行INSERT调用。 $ wpdb上的INSERT命令,当成功执行时,填写$ wpdb-> insert_id变量。每个用户INSERT请求是否会为每个人更改$ wpdb-> insert_id变量(也就是全局),或者每个人都有一个单独的$ wpdb实例,这样可以安全使用,因为我可以放心地假设在检索$ wpdb-&gt ; 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;
}
答案 0 :(得分:1)
应该有没有问题。
每个用户请求都是单独解释的 - 在不同的请求之间不会传递任何内容。
答案 1 :(得分:0)
我将说明最后,我使用基于Wordpress安装的Propel 2.0 ORM来处理数据库请求,并且它运行得非常好。
它肯定会减少开发时间,并使调试和维护代码成为一个爆炸性的。
我能说的唯一的缺点是,Propel 2.0在线文档很少,所以你必须具备一般的SQL和编程知识,这样你才不会卡住!