2011-07-27 105 views
2

我的数据库更新Mysql的列字段列:ID,FIRST_NAME,电子邮件,密码,级别基于电子邮件地址

我有我试图基于“电子邮件地址更新“级别”列形式'输入了现有用户。

现在我有一个基本的表格,只是插入信息,但我需要它来更新基于电子邮件值的现有用户。

这是我

<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 ; 

?> 
+1

你好[Bobby Tables](http://bobby-tables.com)!学校现在(不再)在会议上。 –

回答

1

我不知道如果我正确uderstand你的问题,但如果你正在寻找的SQL更新:

UPDATE users Set level='some_value' WHERE email="some_email_address" 

所以,你可以这样做:

$query="UPDATE users SET level='" .$level."' WHERE email='" .$email."'"; 

也就是说,如果我的理解你的问题正确。 正如您试图更新现有表一样,根据输入到表单中的电子邮件地址。

+0

确定工作,我只是不得不删除)在最后。非常感谢! – Hector

+0

抱歉,“)”复制和粘贴似乎偶尔会“失败”;) – Drakkainen

2

不知道你使用的是什么版本的MySQL,你可以使用INSERT ON http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

如果您使用的是老版本,那么一个简单的选择id限制1应该足以找到,如果记录存在:如果您在5+重复键UPDATE语法。

顺便说一句:你应该使用mysql_real_escape_string(或类似),然后再执行你的sql语句。为了防止在字段名称中出现保留字或无效符号,在字段名称周围始终使用“back tick”也是一个好主意。

相关问题