【问题标题】:php mysql update queryphp mysql更新查询
【发布时间】:2013-03-26 20:49:45
【问题描述】:

我正在创建一个edit_setting 页面,允许用户更新他们的个人资料。我能够更新每个字段,但电子邮件地址字段给了我一个错误。

关键电子邮件地址的重复条目

如何解决这个错误? 这是处理电子邮件字段的一段代码。 如果您需要其他代码,请告诉我。

account_setting.php

     $edit_query = mysql_query("UPDATE user SET first_name= '$fname', last_name= '$lname', address= '$country', email_address = '$email', specialization_name= '$spec', interest = '$aboutme' WHERE user_id = '$userid'") or die(mysql_error());


<td><label for="email"><span class="Fields">Email Address</span></label></td>
  <td><input type="text" name="email" placeholder="Email_Address" value="<?php echo $email; ?>" /></td>

【问题讨论】:

标签: php mysql forms


【解决方案1】:

这意味着email_address 字段存在限制,即禁止单个电子邮件地址的多个记录。如果它是主键,那么您需要评估哪个字段最能唯一标识记录(代理键)。如果是唯一约束,则可以删除该约束。

【讨论】:

  • @Polish Prince 所以你的意思是我必须让它不是独一无二的??所以如果我想让它独一无二并且我希望用户更新他们的电子邮件怎么做?或者我不能??
  • @user2205838 unique 表示只能存在一次。我认为你应该做的是检查应用程序端不存在电子邮件并保持约束。
【解决方案2】:

email_address 字段是唯一的,您正在尝试插入重复条目

【讨论】:

  • 所以你的意思是我必须让它不是唯一的??所以如果我想让它独一无二并且我希望用户更新他们的电子邮件怎么做?或者我不能?
【解决方案3】:

听起来您在 email_address 上有一个唯一键。如果从 MySQL 中的数据卫生角度来看这是所需的,那么除了调整代码以正确处理此类错误情况之外,您实际上无能为力。

如果不希望表中的每条记录的电子邮件地址都是唯一的,那么您可以将索引类型更改为不唯一。

【讨论】:

  • 如果我不明白你在说什么,请告诉我.. 最好不要将电子邮件字段放在帐户设置中以允许人们更新它??
  • 我并不是说有什么更好的。您必须确定每个用户记录的唯一电子邮件地址是否对您的应用程序很重要。如果您需要唯一性,那么您的应用程序需要意识到这一点并了解如果用户尝试将其电子邮件地址更新为表中已存在的电子邮件地址,则更新将失败。如果您不需要唯一性,请更改索引以允许重复值。
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-03
  • 2013-05-21
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多