php - 根据电子邮件地址更新 Mysql 列字段

标签 php mysql sql-update

我的数据库包含以下列:ID、名字、电子邮件、密码、级别

我有一个表单,正在尝试根据现有用户输入的“电子邮件地址”更新“级别”列。

现在我有一个基本表单,仅插入信息,但我需要它根据电子邮件值更新现有用户。

这就是我所拥有的

<form action="update.php" method="post">

<input type="hidden" name="action" value="update" />

<fieldset>
<label  for="email" />Email Address:</label>
<input  value="" type="text" name="email" id="email" />
<label  for="level" />Level:</label>
<input  value="vip" type="text" name="level" id="level" />
<input class="button" type="image" src="/img/right/get-started-button.png" />
</fieldset>
</form>

----update.php------

<?php
$email = $_POST['email'];
$level = $_POST['level'];

mysql_connect ("localhost", "username", "pass") or die ('Error: ' . mysql_error());
mysql_select_db ("db_name");

$query="INSERT INTO users (email, level)VALUES ('".$email."','".$level."')";

mysql_query($query) or die ('Error updating database');

echo "Database Updated With: " .$email. " ".$level ;

?>

最佳答案

不知道您使用的 MySQL 版本,如果您使用的是 5+,则可以使用 INSERT ON DUPLICATE KEY UPDATE 语法:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

如果您使用旧版本,那么简单的 select id limit 1 就足以查找记录是否存在。

顺便说一句:在执行 sql 语句之前,您应该使用 mysql_real_escape_string (或类似的)。始终在字段名称周围使用反引号 ` 也是一个好主意,以防您在字段名称中遇到保留字或无效符号。

关于php - 根据电子邮件地址更新 Mysql 列字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850585/

相关文章:

mysql - 如何将 SUM 与两个不同表中的 INNER JOIN 结合使用

MYSQL SELECT 返回带时区计算的时间戳

mysql - 使用mysql根据前一行在记录集中设置修改标志

php - 具有自动增量的 Doctrine 2 复合主键

PHP:对象上的array_map?

php - PDO 准备好的语句未返回正确的结果(返回用变量名称填充的数组)

sql - 通过删除绝对路径并保留文件名来更新数据库列

PHP/MySQL : updating every row with a random value - foreach not working (updating all rows with same value)

javascript - 如何提高可读性? (将 php vars 传递给外部文件中的 javascript)

php - 具有多个标题行的 CSV;使用php导入mysql