我尝试了很多我在stackoverflow上找到的解决方案,但在尝试在一个语句中更新我的表时仍然遇到同样的错误。
ERROR:
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与您的MariaDB服务器版本对应的手册,以便在第2行的“WHERE docID = 7”附近使用正确的语法
代码:
<?php
if(isset($_POST['btn-revActivate']))
{
try
{
$database = new Database();
$db = $database->dbConnection();
$conn = $db;
$stmt=$conn->prepare("UPDATE tbl_revisions, tbl_documents SET revStatus='Active', docStatus='Draft'
WHERE revID=$rid AND docID=$docID ");
$stmt->bindparam("revStatus",$revStatus);
$stmt->bindparam(":id",$rid);
$stmt->bindparam("docStatus",$docStatus);
$stmt->bindparam(":docID",$docID);
$stmt->execute();
return true;
}
catch(PDOException $e)
{
echo $e->getMessage();
return false;
}
}
?>
有人可以帮忙,因为我不知道这句话有什么问题。 感谢。
答案 0 :(得分:1)
您无法在一个语句中更新多个表。如果要更新,则可以使用事务来确保以原子方式处理两个UPDATE语句。
BEGIN TRANSACTION;
UPDATE tbl_revisions
SET revStatus='Active', docStatus='Draft'
WHERE revID=$rid AND docID=$docID ';
UPDATE tbl_documents
SET revStatus='Active', docStatus='Draft'
WHERE revID=$rid AND docID=$docID ';
COMMIT;
了解更多信息