gpt4 book ai didi

php - $wpdb->insert 没有重新分配唯一字段

转载 作者:行者123 更新时间:2023-11-29 00:17:01 26 4
gpt4 key购买 nike

我创建 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 为假。
但是,如果我刷新 wp 页面,第三次尝试使用相同的电子邮件完美地通过,var_dump 1。任何重复的 wp 刷新都会打开数据库以进行重复输入。为什么?我做错了什么?

最佳答案

不,email 在这里不是UNIQUEemailtelephone 对在您的表定义中是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 ;
";

可能这就是你想要的。

关于php - $wpdb->insert 没有重新分配唯一字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22607656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com