2011-03-23 59 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個更新記錄。