Hy,
我在mysql中有一个users
表,其中username
和alias
设置为UNIQUE
。如果我尝试插入已存在的内容,我会收到错误:{ {1}}这很好。
但我想向用户显示如下消息:
#1062 - Duplicate entry 'Ramocea' for key 'alias'
和Alias already exist in database
不是mysql_error。
是否需要检查数据库并Username already exist in the database
?或者是否有一种方法来操纵mysql抛出的错误并替换消息?
非常感谢...
答案 0 :(得分:1)
方法:在执行INSERT之前,请使用相同的数据执行SELECT。然后你会知道,如果已经存在数据,并警告用户。
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";
}