【发布时间】:2018-04-09 08:19:22
【问题描述】:
我知道已经有很多关于这个主题的问题。但遗憾的是,当我输入不同的输入并按下更新按钮时,我的用户配置文件不想更新。我需要在星期三之前完成这个学校练习,我真的没有其他人可以问。希望你们能帮帮我。
我的问题:
我将始终得到输出update not successful,它永远不会更新我数据库中的任何记录。而且我不确定该怎么做,因为我几乎尝试了所有方法。
欢迎.php:
<?php
include("../php/session.php");
?>
<div>
<div class="col-md-9">
<div class="imagepageback">
<div class="card">
<div class="profilimage"></div>
<hr class="verticalline">
<form class="form" action="" method="post">
<input id="username" class="username" type="text" name="username" value="<?php echo $username; ?>" readonly>
<input id="email" class="email" type="text" name="email" value="<?php echo $email; ?>" readonly>
<input id="firstname" class="firstname" type="text" name="firstname" value="<?php echo $firstname; ?>" readonly>
<input id="lastname" class="lastname" type="text" name="lastname" value="<?php echo $lastname; ?>" readonly>
<input id="birthdate" class="birthdate" type="text" name="birthdate" value="<?php echo $birthdate; ?>" readonly>
<div>
<input id="street" class="street" type="text" name="street" value="<?php echo $street; ?>" readonly>
<input id="nr" class="nr" type="text" name="streetnr" value="<?php echo $streetnr; ?>" readonly>
</div>
<div>
<input id="city" class="city" type="text" name="city" value="<?php echo $city; ?>" readonly>
<input id="plzz" class="plzz" type="text" name="plzz" value="<?php echo $plzz; ?>" readonly>
</div>
<a href="#" class="editprofilelink" id="editprofilelink" onclick="editable(); showbt()"; >Edit Profile</a>
<a href="changepd.html" class="editpasswordlink">Change Password</a>
<!----------PHP Skript----------->
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$email = mysqli_real_escape_string($db,$_POST['email']);
$username = mysqli_real_escape_string($db,$_POST['username']);
$firstname = mysqli_real_escape_string($db,$_POST['firstname']);
$lastname = mysqli_real_escape_string($db,$_POST['lastname']);
$birthdate = mysqli_real_escape_string($db,$_POST['birthdate']);
$street = mysqli_real_escape_string($db,$_POST['street']);
$streetnr = mysqli_real_escape_string($db,$_POST['streetnr']);
$city = mysqli_real_escape_string($db,$_POST['city']);
$plzz = mysqli_real_escape_string($db,$_POST['plzz']);
$sql = "UPDATE clients SET " .
"email = '$email', " .
"username = '$username', " .
"firstname = '$firstname', " .
"lastname = '$lastname', " .
"birthdate = '$birthdate', " .
"street = '$street', " .
"streetnr = '$streetnr', " .
"city = '$city', " .
"plzz = '$plzz' " .
"WHERE username = '$username'";
$result = mysqli_query($db,$sql);
if($result) {
$_POST["email"] = $email;
$_POST["username"] = $username;
$_POST["firstname"] = $firstname;
$_POST["lastname"] = $lastname;
$_POST["birthdate"] = $birthdate;
$_POST["street"] = $street;
$_POST["streetnr"] = $streetnr;
$_POST["city"] = $city;
$_POST["plzz"] = $plzz;
header("location:http://localhost:81/Left_over_youth_website/php/logout.php");
}else {
echo '<p id="error">Update was not sucessful</p>';
}
}
?>
<input hidden id="btupdate" type="submit" name="btupdate" value="Update">
</form>
</div>
</div>
</div>
</div>
session.php:
<?php
include('connection.php');
session_start();
$user_check = $_SESSION['login_user'];
if(!isset($_SESSION['login_user'])){
header("location:http://localhost:81/Left_over_youth_website/pages/login.php");
}
?>
connection.php:
<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_DATABASE', 'leftoveryouth');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
?>
数据库:
CREATE TABLE `clients` (
`id` int(11) NOT NULL,
`firstname` varchar(50) DEFAULT NULL,
`lastname` varchar(50) DEFAULT NULL,
`birthdate` date DEFAULT NULL,
`street` varchar(50) DEFAULT NULL,
`streetnr` varchar(50) DEFAULT NULL,
`city` varchar(50) DEFAULT NULL,
`plzz` varchar(50) DEFAULT NULL,
`username` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
【问题讨论】:
-
什么是 "nrr = '$streetnr'" 的 db 字段名 - 是 nrr 吗?对于 plzz- 你没有在更新查询中使用任何参数,当你传递值时: $_SESSION["plzz"] = $plz
-
检查我的更新。 plzz 是 =plzz 也在数据库中 nrr = streetnr 在数据库中。我很确定我的问题与命名无关
-
看你的查询;
birthdatee = '$birthdate'您没有名为birthdatee的数据库字段@它是birthdate -
在您的 SQL 字符串中,删除所有带有逗号的
and, -
你也应该考虑使用MySQLi prepare ..
标签: php sql session sql-update