2011-03-23 60 views
0

我有一个带有唯一列'a'的表。我想添加一行。向唯一表添加新行

如果我想添加的行有一个已经在表中的'a'值,那么当然,由于列的唯一性,它不会被添加,否则它将被添加。我需要检查是否添加了新行,这会告诉我'a'值是否已经在表中。

什么是检查新条目是否已添加到表格中的最有效方法?

编辑 - 对于措施,最坏的情况,到目前为止是前一个数和后一个个性化......

+0

您需要在应用层面进行检查。看看http://www.php.net/manual/en/function.mysql-errno.php – 2011-03-23 15:51:36

+0

如果要添加的拟建行的“a”不是唯一的,将返回什么错误? – David19801 2011-03-23 15:58:05

+0

错误代码:1062重复条目'a'为键'your_field' – 2011-03-23 16:03:00

回答

0

我的意思是这样的(例如傻)

$conn = mysql_connect('bla bla bla'); 
if (!mysql_query("insert into my_table values ('b')")) { 
    echo mysql_errno($conn) . ': ' . mysql_error($conn) . "\n"; 
} 
else { 
echo 'ok!'; 
} 
+0

您从php手册复制了该文件!但是没问题。 – David19801 2011-03-23 17:16:46

+0

我不能重新发明轮子 – 2011-03-23 18:55:26

1

我总是用ON DUPLICATE KEY UPDATE为(但我通常要更新行时唯一键已经退出...)。

在PDO中,你可以得到一个类似于$stmt->rowCount()的返回码,它给出了1个新记录和2个更新记录。