这是我的代码,
function update_profile($session_user_id, $email, $first_name, $last_name) {
global $con;
mysqli_query($con, "UPDATE `users` SET `email` = '$email' AND `first_name` = '$first_name' AND `last_name` = '$last_name' WHERE `user_id` = $session_user_id");
}
当它更新时,它会将电子邮件更改为0。
他为什么这么做?
编辑。。。
对于那些认为它有用的人。。这是我的表格。
if (isset($_POST['update_profile'])) {
if (empty($_POST['email'])) {
$error[] = 'Fill in a email';
} if (empty($_POST['first_name'])) {
$error[] = 'Fill in a first name';
} else {
if (email_exist($_POST['email']) && $_POST['email'] != $user_data['email']) {
$error[] = 'This email already exist.';
} if (strlen($_POST['first_name']) < 3 || strlen($_POST['first_name']) > 30) {
$error[] = 'This first name is to short or to long, it must be between a range of 3 and 30.';
}
}
if (empty($error) == false) {
echo error_handeling($error);
} else {
$user_id = $session_user_id;
$email = $_POST['email'];
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
update_profile($session_user_id, $email, $first_name, $last_name);
}
}
?>
<h1><?php echo $user_data['first_name'] ?> his profile</h1>
<form action = "" method = "post">
<ul>
<li>
Email*:<br>
<input type = "email" name = "email" value = "<?php echo $user_data['email'] ?>">
</li>
<li>
First name*:<br>
<input type = "text" name = "first_name" value = "<?php echo $user_data['first_name'] ?>">
</li>
<li>
Last name:<br>
<input type = "text" name = "last_name" value = "<?php echo $user_data['last_name'] ?>">
</li>
<li>
<input type = "submit" name = "update_profile" value = "Update">
</li>
</ul>
</form>
我必须再放一些文字,但我不知道该放什么。XD srry:)
在SQL:中将AND
更改为,
mysqli_query($con, "UPDATE `users`
SET `email` = '$email',
`first_name` = '$first_name',
`last_name` = '$last_name'
WHERE `user_id` = $session_user_id");
AND
是一个布尔运算符。您正在计算逻辑表达式的值:
'$email' AND `first_name` = '$first_name' AND `last_name` = '$last_name'
如果任何一个名称字段都不包含您要分配的值,则返回false
,转换为0
,这就是您要存储的内容。
您使用的是AND
,其中应该只放一个逗号,
mysqli_query($con, "UPDATE `users` SET `email` = '$email', `first_name` = '$first_name', `last_name` = '$last_name' WHERE `user_id` = $session_user_id");