0

给出下表:

CREATE TABLE User (
Email VARCHAR(256) PRIMARY KEY,
Name VARCHAR(256),
);

我正在尝试将日期插入表中。要检查重复,我应该使用 SQL 从 email = $email 的用户中选择电子邮件并检查返回的数字或行数是否为 1,如果是 1,我只使用 php 打印错误消息,或者我是否应该尝试插入数据到表中并使用以下打印错误?

mysql_query('INSERT INTO ...');
if (mysql_errno() == 1062) {
    print 'no way!';
}

哪个是更好的方法?

4

2 回答 2

0

您可以进行这样的查询:

$sql = "INSERT INTO `table` VALUES ('$email','$Name')"
      ." WHERE NOT EXISTS (SELECT * FROM `table` WHERE `email`='$email')";

mysql_query($sql) or die("There's a duplicate.");`
于 2012-10-14T07:08:46.743 回答
0

通常最好让 DBMS 进行检查,因为功能已经存在并经过测试。您只需要处理错误消息。

如果您坚持使用自己的代码进行检查,请准备好数小时的头脑风暴(考虑到所解决问题的复杂性)。

于 2012-10-14T07:14:47.087 回答