我有一个表格,可以为用户保存ID。该ID的数据来自LDAP 用户第一次登录时,会在表格中插入ID。但我需要考虑已经在数据库上有数据的用户。 我收到了错误 重复录入' whateverdata'关键' PRIMARY'。 由于它插入数据的字段是主键。但我需要解决这个问题。
$check = "select * from utilizadores where id = '$samaccountname[0]'";
$h = mysql_query($check);
if (!$h) {
die (mysql_error());
}
$data = mysql_fetch_array($h);
if ($data[0] > 1) {
header('location:pprincipal.php');
}
else {
$query = mysql_query("insert into utilizadores (id) values('$samaccountname[0]');");
if (!$query){
die (mysql_error());
}
}
我不想复制数据,我只是想检查数据是否已插入,如果是,请继续,如果不是,则插入数据。
注意:$ samaccountname是一个包含从LDAP
获取的数据的变量basicaly - 用户首次登录并在数据库中插入数据。 第二次 - 由于该字段是主键,它将失败。 为了进入主页面(pprincipal.php),用户必须将他的数据插入数据库。
提前致谢。
答案 0 :(得分:1)
在mysql_num_rows
条件中使用if
函数。
if (mysql_num_rows($h)){
header('location:pprincipal.php');
} else {
$query = mysql_query("insert into utilizadores (id) values('$samaccountname[0]');");
if (!$query){
die (mysql_error());
}
}
答案 1 :(得分:0)
您可以插入忽略数据而不检查它是否存在。 用以下代码替换你的代码:
$query = mysql_query("insert ignore into utilizadores (id) values('$samaccountname[0]');");
if (!$query){
die (mysql_error());
}