我的数据库包含以下列: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/