我正在尝试在个人资料页面中添加用户名字段。首先,要访问该配置文件页面,用户必须登录。并通过这种情况下的唯一值,即他的电子邮件进行识别。现在回到用户名字段。目前,我的用户名查询将我输入的任何用户名插入到MySQL数据库的id 1中。我希望它根据用户的电子邮件进行更新。这样它就会被插入到正确的行中。
目前的工作如下:
如您所见,我从其他电子邮件输入用户名:http://imgur.com/BQsZz8Q
但它仍在ID 1中更新:http://imgur.com/mVgyMik
这是我的 action.php :
<?php
session_start(); //---> start session
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$con = mysqli_connect('localhost', 'id1753243_venom', 'roushan123', 'id1753243_gameware_01');
if(!$con)
{
echo 'Not connected to the server';
}
if(isset($_POST['username']))
{
$username = $_POST['username'];
$sql = "UPDATE users SET username='".mysqli_real_escape_string($con,$username)."' WHERE id = 1";
$insert = mysqli_query($con,$sql);
$_SESSION['username'] = $username; //---> this will store username into session variable
}
if(!$insert)
{
echo 'Not inserted';
}
else
{
echo 'Inserted';
}
header("refresh:2; url=user.php");
?>
我是初学者,但我确实知道问题出在WHERE
子句中。我不知道的是,如何根据我登录的用户的电子邮件更改查询和存储用户名。我希望有在这种情况下,你可以帮助我!非常感谢!
PS:我知道PHP代码不安全,这只是一个测试。
答案 0 :(得分:0)
查询是正确的,但您在查询中犯了一个错误的电子邮件参数。表中的发布数据和电子邮件列中应该有一个电子邮件参数,然后通过更改where条件来更改查询,如下所述: WHERE id = 1 to email = $ _ POST ['e-mail']