![](/img/trans.png)
[英]Insert fields into WordPress DB using wpdb->insert and gravity forms
[英]$wpdb->insert is not respacting unique fields
我已经创建Wordpress插件已有一段时间了。 这是mysql表的示例:
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id INT(11) NOT NULL AUTO_INCREMENT,
email VARCHAR(100) DEFAULT NULL,
telephone VARCHAR(15) DEFAULT NULL,
PRIMARY KEY(id),
UNIQUE (email, telephone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='WP plugin sesa_players db' AUTO_INCREMENT=1 ;
";
电子邮件应该是唯一的,对吗? phpMyAdmin这样说。
这是将数据插入该表的wordpress代码:
$err = $wpdb->insert($wpdb->prefix.$table_name, $data, $format);
var_dump($err);
它的工作原理,甚至比应有的要多。 假设电子邮件是m@m.com。 第一次插入顺利。 第二次尝试由于应重复输入而失败。 var_dump为false。
但是,如果我刷新wp页面,则使用相同电子邮件的第三次尝试会顺利通过var_dump1。任何重复的wp刷新都会打开db,以重复输入。 为什么? 我究竟做错了什么?
不,这里的email
不是UNIQUE
。 email
和telephone
对在表定义中是UNIQUE
。
$sql = "CREATE TABLE IF NOT EXISTS $table_name (
id INT(11) NOT NULL AUTO_INCREMENT,
email VARCHAR(100) DEFAULT NULL,
telephone VARCHAR(15) DEFAULT NULL,
PRIMARY KEY(id),
UNIQUE (email),
UNIQUE (telephone)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='WP plugin sesa_players db' AUTO_INCREMENT=1 ;
";
可能这就是您想要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.