更新“配置文件页面”,以PHP格式向mySQL数据库添加条目?

时间:2013-02-05 22:20:07

标签: php mysql database forms

我创建了一个简单的登录和注册项目。

然后向用户显示他们的“个人资料页面”。我希望他们能够单击“编辑”按钮并在注册期间不存在的字段中键入信息。我可以让脚本在数据库中添加“生物”,但它会创建一条新记录,如何将此生物信息添加到特定成员记录中?

<?php
ob_start();
session_start();
if(!isset($_SESSION['Email'])){
header("Location: login.php");
}   
?>

<body>
<div id="wrapper">

<?php
$con = mysql_connect("HIDDEN");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("HIDDEN", $con);

$sql="INSERT INTO members (Bio)
VALUES
('$_POST[Bio]')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
?>

<form action="edit.php" method="post">
Bio: <input type="text" name="Bio">
<input type="submit">
</form>

</div>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

如果bio列位于同一个表中,则需要执行UPDATE语句,而不是另一个INSERT语句。您还需要知道用户的ID。

UPDATE `members` SET `bio` = ?

此外,不要在SQL语句中直接使用$_POST变量。然后,您的站点容易受到SQL注入漏洞的影响。使用类似PDO的东西来准备语句,然后使用绑定参数执行它们。一个示例,PDO实例中的$db

$sql = "UPDATE `members` SET `bio` = :bio WHERE `id` = :id LIMIT 1";

$statement = $db->prepare($sql);
$statement->bindParam(':bio', $bio);
$statement->bindParam(':id', $user_id);
$statement->execute();

您需要分配$bio$user_id变量。

答案 1 :(得分:0)

<?php
ob_start();
session_start();
if(!isset($_SESSION['Email'])){
header("Location: login.php");
}   
?>

<body>
<div id="wrapper">

<?php
if(isset($_REQUEST['submit'])) {
$con = mysql_connect("HIDDEN");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("HIDDEN", $con);

$sql="INSERT INTO members(Bio) VALUES ('".$_POST['Bio']."')";

if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";

mysql_close($con);
}
?>

<form action="edit.php" method="post">
Bio: <input type="text" name="Bio">
<input type="submit" name="submit">
</form>

</div>
</body>
</html>