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