mysql独特的字段..用php进行后处理

时间:2011-09-07 11:10:24

标签: php mysql

Hy,

我在mysql中有一个users表,其中usernamealias设置为UNIQUE。如果我尝试插入已存在的内容,我会收到错误:{ {1}}这很好。

但我想向用户显示如下消息:

#1062 - Duplicate entry 'Ramocea' for key 'alias'Alias already exist in database不是mysql_error。

是否需要检查数据库并Username already exist in the database?或者是否有一种方法来操纵mysql抛出的错误并替换消息?

非常感谢...

2 个答案:

答案 0 :(得分:1)

  1. 方法:在执行INSERT之前,请使用相同的数据执行SELECT。然后你会知道,如果已经存在数据,并警告用户。

  2. Catch(读取错误),检查它是否包含字符串“Duplicate entry”,如果是,则警告用户。

答案 1 :(得分:1)

如果您想在一个查询中执行所有操作:

if (!mysql_query("INSERT INTO table ...")) {
    switch (mysql_errno()) {
        case 1062:
           echo ""; // parse mysql_error() here for a key
           break;
        //case ...
    }
}

但我建议您事先检查现有值:

$res = mysql_query("SELECT 1 FROM table WHERE unique_field = ...");
if (mysql_num_rows($res)) {
    echo "Something already exist in database";
}