MySQL "UPDATE" 语法在列中输入 0

MySQL "UPDATE" syntax is entering 0 in column

如果使用 if 条件,我正在尝试使用 PDO 进入 table。我的函数代码如下:

function add_user_info($conn, $user, $info, $fName, $sName, $past, $pos){
    // Prepare and execute statements
    $info1 = addslashes($info);

    $sql = $conn->prepare("SELECT * FROM `User_Info` WHERE `User` = '$user'");
    $sql->execute();
    if ($sql->fetch()){
        // Update current entry
        $sql1 = $conn->prepare("UPDATE `User_Info` SET `Info` = '$info1' AND `Past` = '$past' AND `Position` = '$pos' WHERE `User` = '$user'");
    } else {
        // Create new entry
        $sql1 = $conn->prepare("INSERT INTO `User_Info` (`User`, `Info`, `FName`, `SName`, `Past`, `Position`) VALUES ('$user', '$info1', '$fName', '$sName', '$past', '$pos')");
    }
    $sql1->execute();
}

唯一(我再说一遍,唯一)对我不起作用的部分是第 9 行的更新查询。我已将问题缩小到与 Info 列的更新相关,不仅如此,它还是字符串的问题,因此变量 $info1.

我正在尝试从 CKEditor 中传入一串文本。它是一个富文本字符串,因此在传递给 SQL.

时其中包含 HTML 标签、引号等

table 中行的初始创建(函数的第 12 行)完美无缺,因此只有在更新时字符串才会被视为有趣。当我用一个词代替 $info1 进行更新时,它仍然不起作用。

如phpmyadmin中所示,我的table架构如下:

更新命令多集被,分隔而不是and

UPDATE `User_Info` 
SET 
`Info` = '$info1' ,
`Past` = '$past' ,
`Position` = '$pos' 
WHERE `User` = '$user'"

AND更改为,

$sql1 = $conn->prepare("UPDATE `User_Info` SET `Info`='$info1', `Past`='$past', `Position`='$pos' WHERE `User`='$user'");