我有一个带有唯一列'a'的表。我想添加一行。向唯一表添加新行
如果我想添加的行有一个已经在表中的'a'值,那么当然,由于列的唯一性,它不会被添加,否则它将被添加。我需要检查是否添加了新行,这会告诉我'a'值是否已经在表中。
什么是检查新条目是否已添加到表格中的最有效方法?
编辑 - 对于措施,最坏的情况,到目前为止是前一个数和后一个个性化......
我有一个带有唯一列'a'的表。我想添加一行。向唯一表添加新行
如果我想添加的行有一个已经在表中的'a'值,那么当然,由于列的唯一性,它不会被添加,否则它将被添加。我需要检查是否添加了新行,这会告诉我'a'值是否已经在表中。
什么是检查新条目是否已添加到表格中的最有效方法?
编辑 - 对于措施,最坏的情况,到目前为止是前一个数和后一个个性化......
我的意思是这样的(例如傻)
$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!';
}
您从php手册复制了该文件!但是没问题。 – David19801 2011-03-23 17:16:46
我不能重新发明轮子 – 2011-03-23 18:55:26
我总是用ON DUPLICATE KEY UPDATE
为(但我通常要更新行时唯一键已经退出...)。
在PDO中,你可以得到一个类似于$stmt->rowCount()
的返回码,它给出了1个新记录和2个更新记录。
您需要在应用层面进行检查。看看http://www.php.net/manual/en/function.mysql-errno.php – 2011-03-23 15:51:36
如果要添加的拟建行的“a”不是唯一的,将返回什么错误? – David19801 2011-03-23 15:58:05
错误代码:1062重复条目'a'为键'your_field' – 2011-03-23 16:03:00