我需要一些帮助来更新数据库中“电子邮件”列的代码。 ID列为“UserID”,电子邮件列为“Email”。
<form method="POST" action="Index.php" name="UpdateEmail"><div class="input-group">
<?php
if(isset($_POST['submit'])){
$Email = $_POST['Email'];
$EmailID = $_POST['IDhiddenField'];
mysql_query("UPDATE user SET UserID=$EmailID, Email=$Email WHERE UserID=$EmailID, Email=$Email");
?>
<?php } ?>
<input class="form-control" placeholder="Enter Email Address Here to Update" type="email" name="Email" required>
<span class="input-group-btn">
<button class="btn btn-default" type="submit">Update Email</button>
<input name="IDhiddenField" type="hidden" id="IDhiddenField" value="<?php
$my_id = $_SESSION['user_id'];
$id = getuser($my_id, 'UserID');
echo "$id";
?>">
</span>
</div>
<input type="hidden" name="MM_update" value="UpdateEmail">
</form>
答案 0 :(得分:1)
正如他们所说,你应该使用PDO,这是一个你可以使用的类: http://pastebin.com/bJcth8rz
您必须创建一个myPDO.include.php,您可以在其中设置数据库的配置并将其包含在每个页面中。
$statement = $myPDO::getInstance()->prepare(<<<SQL
UPDATE user SET Email=:email WHERE UserID=:userID
SQL
);
$email = $_POST['Email'];
$statement->execute(array(":email" => $email,
":userID" => getuser($_SESSION['user_id'],'UserID')));
此请求将执行您想要的操作。
请务必开始会话:
session_start();
当您使用会话时,您可以在其他页面上访问它,您不必通过隐藏输入的表单进行传输,这可以由用户操作!
顺便说一下,我不明白为什么你有一个email_ID字段,在我看来,你的表应该由以下内容组成:
User
idUser (int)
Email (varchar)
...
但我不知道电子邮件ID在这里如何有用