第一个元素im mysqli query给出了一个0


the first element im mysqli_query gives a 0

这是我的代码,

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");